
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