[Python-ideas] An alternate approach to async IO

Richard Oudkerk shibturn at gmail.com
Wed Nov 28 20:57:29 CET 2012


On 28/11/2012 7:23pm, Trent Nelson wrote:
>      Oooer, that's definitely not what I had in mind.  This is how I
>      envisioned it working (think of events() as similar to poll()):
>
>          with aio.events() as events:
>              for event in events:
>                  # process event
>                  ...
>
>      That aio.events() call would result in an InterlockedSListFlush,
>      returning the entire list of available events.  It then does the
>      conversion into a CPython event type, bundles everything into a
>      list, then returns.
>
>      (In reality, there'd be a bit more glue to handle an empty list
>       a bit more gracefully, and probably a timeout to aio.events().
>       Nothing should involve a spinlock though.)
>
>          Trent.

That api is fairly similar to what is in the proactor branch of tulip 
where you can write

     for event in proactor.poll(timeout):
         # process event

But why use a use a thread pool just to take items from one thread safe 
(FIFO) queue and put them onto another thread safe (LIFO) queue?

-- 
Richard




More information about the Python-ideas mailing list