Method: HTTPX::Selector#register
- Defined in:
- lib/httpx/selector.rb
#register(io, interests) ⇒ Object
register io for interests events.
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/httpx/selector.rb', line 66 def register(io, interests) readable = interests == :r || interests == :rw writable = interests == :w || interests == :rw @lock.synchronize do if readable monitor = @readers[io] if monitor monitor.interests = interests else monitor = Monitor.new(io, interests, self) end @readers[io] = monitor @writers.delete(io) unless writable end if writable monitor = @writers[io] if monitor monitor.interests = interests else # reuse object monitor = readable ? @readers[io] : Monitor.new(io, interests, self) end @writers[io] = monitor @readers.delete(io) unless readable end monitor end end |