diff options
Diffstat (limited to 'test/ruby/test_process.rb')
-rw-r--r-- | test/ruby/test_process.rb | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index ba46e94570..eb114dbebb 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -2281,7 +2281,7 @@ EOS def test_threading_works_after_exec_fail r, w = IO.pipe pid = status = nil - Timeout.timeout(30) do + Timeout.timeout(90) do pid = fork do r.close begin @@ -2289,11 +2289,12 @@ EOS rescue SystemCallError w.syswrite("exec failed\n") end + q = Queue.new run = true - th1 = Thread.new { i = 0; i += 1 while run; i } - th2 = Thread.new { j = 0; j += 1 while run && Thread.pass.nil?; j } + th1 = Thread.new { i = 0; i += 1 while q.empty?; i } + th2 = Thread.new { j = 0; j += 1 while q.empty? && Thread.pass.nil?; j } sleep 0.5 - run = false + q << true w.syswrite "#{th1.value} #{th2.value}\n" end w.close |