Sha256: ac00e92a4ff79b89583e4b113083c97efac08d26e2b455ae053573b3bcfbdb8d
Contents?: true
Size: 800 Bytes
Versions: 3
Compression:
Stored size: 800 Bytes
Contents
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
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sleepy_penguin-3.4.1 | lib/sleepy_penguin/kqueue/io.rb |
sleepy_penguin-3.3.0 | lib/sleepy_penguin/kqueue/io.rb |
sleepy_penguin-3.2.0 | lib/sleepy_penguin/kqueue/io.rb |