[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. 
[snip]
>     def render_GET (self, request):
>         self.rq = request
>         target = escape(request.args['target'][0])
>         d = getPage(target).addCallback(self.print_page)
           d.addCallback(stopNow)
>         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