Method: DTC::Utils::MiniSelect#close_now
- Defined in:
- lib/dtc/utils/mini_select.rb
#close_now(fd, error = nil) ⇒ Object
Close the specified file, calling all callbacks as required, closing the descriptor, and removing them from the miniselect
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/dtc/utils/mini_select.rb', line 54 def close_now fd, error = nil event_id = error ? :error : :close Array(@want_read.delete(fd)).each { |cb| cb.call(self, event_id, fd, error) if cb } Array(@want_write.delete(fd)).each { |data, cb| cb.call(self, event_id, fd, error) if cb } Array(@want_close.delete(fd)).each { |cb| cb.call(self, event_id, fd, error) } fd.close unless fd.closed? if error && @error_handlers Array(@error_handlers).each { |cb| cb.call(self, fd, error) } end end |