[Twisted-Python] Deferred execution, timeouts, and unhandled exceptions

Bob Ippolito bob at redivi.com
Fri Jan 17 19:04:01 EST 2003


I've noticed that there isn't really a good/standard way to do timeouts 
(without bad things happening) or cancel deferreds in Twisted [without 
subclassing everything you use, which isn't good in my book].

In the attached code sample (and log, so you don't need to run it to 
see its output), I demonstrate the problem, a quick-fix temporary 
solution (to prevent unhandleable exceptions from being raised), and a 
longer term proposed convention for refactoring existing classes to 
take advantage of this new functionality.

As radix mentioned, my proposed solution does make the meaning of 
errback somewhat ambiguous.  However if you add a new 
CancelledOperation exception to deferred, and addCanceller/cancel 
methods (addCanceller = addErrback, cancel = errback) then it'd be 
pretty transparent.

-bob


-------------- next part --------------
A non-text attachment was scrubbed...
Name: deferred.py
Type: application/octet-stream
Size: 3343 bytes
Desc: not available
Url : http://twistedmatrix.com/pipermail/twisted-python/attachments/20030117/b1103e3a/attachment.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: deferred.log
Type: application/octet-stream
Size: 2426 bytes
Desc: not available
Url : http://twistedmatrix.com/pipermail/twisted-python/attachments/20030117/b1103e3a/attachment-0001.obj 


More information about the Twisted-Python mailing list