diff options
Diffstat (limited to 'lib/sleepy_penguin/epoll/io.rb')
-rw-r--r-- | lib/sleepy_penguin/epoll/io.rb | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/lib/sleepy_penguin/epoll/io.rb b/lib/sleepy_penguin/epoll/io.rb deleted file mode 100644 index 055f574..0000000 --- a/lib/sleepy_penguin/epoll/io.rb +++ /dev/null @@ -1,31 +0,0 @@ -class SleepyPenguin::Epoll::IO - # :stopdoc: - - # This is only for Ruby 1.8 using green threads - - alias __epoll_wait epoll_wait - undef_method :epoll_wait - def epoll_wait(maxevents = 64, timeout = nil) - begin - if timeout == nil || timeout < 0 # wait forever - begin - IO.select([self]) - n = __epoll_wait(maxevents, 0) { |events,io| yield(events, io) } - end while n == 0 - elsif timeout == 0 - return __epoll_wait(maxevents, 0) { |events,io| yield(events, io) } - else - done = Time.now + (timeout / 1000.0) - begin - tout = done - Time.now - IO.select([self], nil, nil, tout) if tout > 0 - n = __epoll_wait(maxevents, 0) { |events,io| yield(events, io) } - end while n == 0 && tout > 0 - end - n - rescue Errno::EINTR - retry - end - end - # :startdoc: -end |