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
This commit is contained in:
parent
e4c2f4fa26
commit
2ad7a741c0
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user