From 81504e83e72bf125476528e5f119604d9697f682 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 24 Dec 2019 15:47:59 +0900 Subject: Synchronize with a Queue instead of sleeping --- test/io/wait/test_io_wait.rb | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'test') 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 -- cgit v1.2.3