Class: Async::DebugSelector
- Inherits:
-
Object
- Object
- Async::DebugSelector
- Defined in:
- lib/async/debug.rb
Defined Under Namespace
Classes: MonitorProxy
Instance Method Summary collapse
- #close ⇒ Object
- #deregister(io) ⇒ Object
-
#initialize(selector) ⇒ DebugSelector
constructor
A new instance of DebugSelector.
- #register(io, interests) ⇒ Object
- #select(*args) ⇒ Object
- #wakeup ⇒ Object
Constructor Details
#initialize(selector) ⇒ DebugSelector
Returns a new instance of DebugSelector.
45 46 47 48 |
# File 'lib/async/debug.rb', line 45 def initialize(selector) @selector = selector @monitors = {} end |
Instance Method Details
#close ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/async/debug.rb', line 74 def close if @monitors.any? $stderr.puts "Trying to close selector with active monitors: #{@monitors.values.inspect}!" end @selector.close end |
#deregister(io) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/async/debug.rb', line 62 def deregister(io) $stderr.puts "Deregistering #{io.inspect}." unless @monitors.delete(io.fileno) raise RuntimeError, "Trying to remove monitor for #{io.inspect} but it was not registered!" end end |
#register(io, interests) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/async/debug.rb', line 50 def register(io, interests) $stderr.puts "Registering #{io.inspect} for #{interests}." if monitor = @monitors[io.fileno] raise RuntimeError, "Trying to register monitor for #{io.inspect} but it was already registered as #{monitor.io.inspect}!" end @monitors[io.fileno] = io MonitorProxy.new(@selector.register(io, interests), self) end |
#select(*args) ⇒ Object
82 83 84 |
# File 'lib/async/debug.rb', line 82 def select(*args) @selector.select(*args) end |
#wakeup ⇒ Object
70 71 72 |
# File 'lib/async/debug.rb', line 70 def wakeup @selector.wakeup end |