aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/io/wait/test_io_wait.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/test/io/wait/test_io_wait.rb b/test/io/wait/test_io_wait.rb
index 50c06976b8..4003f2aff1 100644
--- a/test/io/wait/test_io_wait.rb
+++ b/test/io/wait/test_io_wait.rb
@@ -63,16 +63,20 @@ class TestIOWait < Test::Unit::TestCase
end
def test_wait_forever
- th = Thread.new { sleep 0.01; @w.syswrite "." }
+ q = Thread::Queue.new
+ th = Thread.new { q.pop; @w.syswrite "." }
+ q.push(true)
assert_equal @r, @r.wait
ensure
th.join
end
def test_wait_eof
- th = Thread.new { sleep 0.01; @w.close }
+ q = Thread::Queue.new
+ th = Thread.new { q.pop; @w.close }
ret = nil
assert_nothing_raised(Timeout::Error) do
+ q.push(true)
Timeout.timeout(0.1) { ret = @r.wait }
end
assert_equal @r, ret
@@ -94,16 +98,20 @@ class TestIOWait < Test::Unit::TestCase
end
def test_wait_readable_forever
- th = Thread.new { sleep 0.01; @w.syswrite "." }
+ q = Thread::Queue.new
+ th = Thread.new { q.pop; @w.syswrite "." }
+ q.push(true)
assert_equal @r, @r.wait_readable
ensure
th.join
end
def test_wait_readable_eof
- th = Thread.new { sleep 0.01; @w.close }
+ q = Thread::Queue.new
+ th = Thread.new { q.pop; @w.close }
ret = nil
assert_nothing_raised(Timeout::Error) do
+ q.push(true)
Timeout.timeout(0.1) { ret = @r.wait_readable }
end
assert_equal @r, ret