From 2ad7a741c092d9b4c9a9035ef132de23145bd8e9 Mon Sep 17 00:00:00 2001 From: ko1 Date: Fri, 14 Apr 2017 18:14:25 +0000 Subject: [PATCH] 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