From 4a9ce0319f6e0250c4a8e01284fd5684936bde21 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 26 Sep 2010 03:49:14 +0000 Subject: epoll: add cross-thread test/example This can potentially be very powerful under 1.9 with native threads --- test/test_epoll.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/test_epoll.rb b/test/test_epoll.rb index 50daf3e..c6a11ed 100644 --- a/test/test_epoll.rb +++ b/test/test_epoll.rb @@ -13,6 +13,16 @@ class TestEpoll < Test::Unit::TestCase @ep = Epoll.new end + def test_cross_thread + tmp = [] + Thread.new { sleep 0.100; @ep.add(@wr, Epoll::OUT) } + t0 = Time.now + @ep.wait { |flags,obj| tmp << [ flags, obj ] } + elapsed = Time.now - t0 + assert elapsed >= 0.100 + assert_equal [[Epoll::OUT, @wr]], tmp + end + def test_fork_safe tmp = [] @ep.add @rd, Epoll::IN -- cgit v1.2.3-24-ge0c7