No subject


Sun Apr 26 06:47:01 MDT 2009


Unlike other network libraries and similar to eventlet, gevent starts
the event loop implicitly in a dedicated greenlet. There's no
``reactor`` that you must ``run()`` or ``dispatch()`` function to call.
When a function from gevent API wants to block, it obtains the
:class:`Hub` - a greenlet that runs the event loop - and switches to it.
If there's no :class:`Hub` instance yet, one is created on the fly.

Not sure if you can say that "coroutines are scheduled directly in the
main loop".


>> while with Twisted and Python applications
>> embedded in C servers like Nginx, you have to return control to the
>> "framework" (this what the x-wsgiorg.suspend WSGI extension does).
> 
> It looks like I misremembered the interface provided by txwsgi.  I 
> thought it let you switch to another coroutine directly, 

No, since this would not be possible with a WSGI implementation embedded
in Nginx.

You *need* to return control to the event loop (process cycle in Nginx).

> rather than 
> requiring that you yield an empty string after (the equivalent of) 
> setting a flag.  This seems to be more because of WSGI constraints than 
> anything else, though.
> 

Regards  Manlio



More information about the Twisted-Python mailing list