[Twisted-Python] echo server using deferToThread

snacktime snacktime at gmail.com
Sun Feb 6 22:07:49 MST 2005


> > replacing self.transport.write with self.sendLine just makes the code
> > block when it hits self.sendLine.
> 
>  This seems unlikely, since sendLine never blocks.  sendLine is nothing
> more than a call to transport.write() with the appropriate additional
> bytes tacked on automatically ("\r\n" by default).
> 
>  Echo subclasses Protocol, though.  sendLine is a method of LineReceiver.
> When you call sendLine on your Protocol instance, an AttributeError is
> raised.  The exception is translated into a Failure (so as to be handleable
> asynchronously).  But no handler is ever set up for it, so it goes
> unreported, unless you get lucky and the Failure gets garbage collected
> in a timely fashion.
> 
>  So, if you get stuck with a Deferred that appears to just hang forever,
> make sure you are setting up proper error handling.  In some cases, for
> debugging, this may just mean adding twisted.python.log.err as the errback
> (`from twisted.python import log; d.addErrback(log.err)').

Ya I wasn't setting the error handling and only sometimes they would get caught.

Twisted is a bit of a learning curve, but I do like the way it's put
together and so far it seems like a great product.




More information about the Twisted-Python mailing list