class Async::Container::Supervisor::Connection::Call
def self.dispatch(connection, target, id, message)
def self.dispatch(connection, target, id, message) Async do call = self.new(connection, id, message) connection.calls[id] = call target.dispatch(call) while response = call.pop connection.write(id: id, **response) end ensure # If the queue is closed, we don't need to send a finished message. unless call.closed? connection.write(id: id, finished: true) end connection.calls.delete(id) end end