Ticket #3587 enhancement closed duplicate
deferred for loseConnection
|Reported by:||ghazel||Owned by:|
twisted.internet.abstract.FileDescriptor.loseConnection either completes immediately or finishes asynchronously. Similar to twisted.internet.tcp.Port.loseConnection, it would be nice if a deferred was returned when the operation did not complete immediately.
Specifically, it would be nice if the deferred fired -after- the event handler for connectionLost, similar to twisted.internet.tcp.Port.loseConnection. For example, this would be ideal:
class MyProtocol(Protocol): def dataReceived(self, data): print 'data' df = maybeDeferred(self.transport.loseConnection) df.addCallback(lambda : sys.stdout.write('callback\n')) def connectionLost(self, reason): print 'connectionLost'
resulting the following, whether the operation was deferred or not:
data connectionLost callback