diff options
Diffstat (limited to 'lib/sleepy_penguin/kqueue/io.rb')
-rw-r--r-- | lib/sleepy_penguin/kqueue/io.rb | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/lib/sleepy_penguin/kqueue/io.rb b/lib/sleepy_penguin/kqueue/io.rb deleted file mode 100644 index 15502d4..0000000 --- a/lib/sleepy_penguin/kqueue/io.rb +++ /dev/null @@ -1,30 +0,0 @@ -class SleepyPenguin::Kqueue::IO - # :stopdoc: - # this file is only for Ruby 1.8 green threads compatibility - alias __kevent kevent - undef_method :kevent - - def __update_timeout(expire_at) - now = Time.now - diff = expire_at - now - diff > 0 ? diff : 0 - end - - def kevent(changelist = nil, nevents = nil, timeout = nil) - if block_given? - expire_at = timeout ? Time.now + timeout : nil - begin - IO.select([self], nil, nil, timeout) - n = __kevent(changelist, nevents, 0) do |*args| - yield(*args) - end - end while n == 0 && timeout != 0 && - (expire_at == nil || timeout = __update_timeout(expire_at)) - n - else - # nevents should be zero or nil here - __kevent(changelist, nevents, 0) - end - end - # :startdoc: -end |