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