[Twisted-web] Defers, the reactor, and idiomatic/proper usage -- new user needs some advice?

Dave Gray dgray at omniti.com
Wed Jun 29 14:55:43 MDT 2005

> which stops the reactor. The trick here is that if you stuff that 
> deferred into a DeferredList before you add the callback that stops the 
> reactor then if your first operation itself returns a deferred, the 
> DeferredList won't call its callbacks until the other Deferred operation 
> completes. So you'll be stacking up a whole bunch of Deferreds inside 
> the first one, and the callback on the DeferredList that does the 
> reactor.stop won't fire until you don't return a Deferred.
> There might be an easier way to do this, but this the way I know 
> (example attached). Someone please let me know if there's an easier way. 
>     def render_GET (self, request):
>         self.rq = request
>         target = escape(request.args['target'][0])
>         d = getPage(target).addCallback(self.print_page)
>         d.addErrback(log.err)
>         return server.NOT_DONE_YET

I'm gonna go ahead and answer my own question here - this isn't 
restricted to DeferredLists, it applies to regular Deferred's too

More information about the Twisted-web mailing list