From cc2f982852248b56ddc44d5895de6fd7cf950aad Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 20 Dec 2017 00:24:19 +0000 Subject: [PATCH] extend timeout limit. * test/ruby/test_process.rb (test_threading_works_after_exec_fail): extend timeout limit from 30 to 90 because some test nodes fails with timeout error. Also use a Queue instead of a local variable to communicate with threads. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_process.rb | 9 +++++---- 1 file 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