From 6ac9e68c44cf0b2773547ca0381c37d2527a3c2a Mon Sep 17 00:00:00 2001 From: ko1 Date: Fri, 14 Apr 2017 18:14:25 +0000 Subject: more explicit synchronization. * test/ruby/test_io.rb (test_race_closed_stream): wait for blocking by r.gets. On some systems (for example, high load average systems) can't start Thread correctly and can't wait r.gets in invoked Thread. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_io.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index ac7570a2b3..c9b7de9181 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -3400,16 +3400,19 @@ __END__ def test_race_closed_stream bug13158 = '[ruby-core:79262] [Bug #13158]' closed = nil + q = Queue.new IO.pipe do |r, w| thread = Thread.new do begin + q << true while r.gets end ensure closed = r.closed? end end - sleep 0.01 + q.pop + sleep 0.1 # wait for blocking by r.gets r.close assert_raise_with_message(IOError, /stream closed/) do thread.join -- cgit v1.2.3