exar...@twistedmatrix.com ha scritto: > On 03:37 pm, manlio_peri...@libero.it wrote: >> exar...@twistedmatrix.com ha scritto: >>> On 01:13 am, jasonjwwilli...@gmail.com wrote: >>>> I didn't notice the benchmarks...good catch. I was more interested in >>>> the conciseness or lack thereof with the various frameworks. Very >>>> surprised that Twisted was nearly as clean and easy to read as the >>>> Eventlet example. >>> This comparison (in the blog post) makes the same mistake that many >>> such >>> comparisons make. The division of libraries into the arbitrary >>> categories of "reactor model" and "coroutine" is artificial. >>> >>> [...] >>> And take a look at how eventlet and gevent are implemented, and you'll >>> find something that's essentially the same as a Twisted reactor. >> The only significative difference, IMHO, is that eventlet and gevent >> are >> able to schedule coroutines directly in the main event loop (since they >> have full control over it), > > What does "schedule coroutines directly in the main event loop" mean?
>From the gevent intro.rst: 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 _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python