diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-04-14 18:14:25 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-04-14 18:14:25 +0000 |
commit | 2ad7a741c092d9b4c9a9035ef132de23145bd8e9 (patch) | |
tree | 0381f37ac90aa3cc9a9d249a808dff1a961679ea /test | |
parent | e4c2f4fa264bc16b8ca6663228f362767ceeb5e9 (diff) | |
download | ruby-2ad7a741c092d9b4c9a9035ef132de23145bd8e9.tar.gz |
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
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_io.rb | 5 |
1 files changed, 4 insertions, 1 deletions
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 |