[Python-ideas] Add a generic async IO poller/reactor to select module
Ronald Oussoren
ronaldoussoren at mac.com
Thu May 24 14:52:59 CEST 2012
On 24 May, 2012, at 14:03, Antoine Pitrou wrote:
> On Thu, 24 May 2012 13:50:27 +0200
> Giampaolo Rodolà <g.rodola at gmail.com>
> wrote:
>> 2012/5/24 Ronald Oussoren <ronaldoussoren at mac.com>:
>>>
>>> On 24 May, 2012, at 3:32, Giampaolo Rodolà wrote:
>>>>>>>
>>>>
>>>> The handler is supposed to provide 3 methods:
>>>> - handle_read_event
>>>> - handle_write_event
>>>> - handle_error_event
>>>>
>>>> Users willing to support multiple event loops such as wx, gtk etc can do:
>>>>
>>>>>>> while 1:
>>>> ... poller.poll(timeout=0.1, blocking=False)
>>>> ... otherpoller.poll()
>>>>
>>>>
>>>> Basically, this would be the whole API.
>>>
>>> Isn't this a limited version of asyncore? (poller.poll == asyncore.loop, the handler is a subset of asyncore.dispatcher).
>>>
>>> Ronald
>>
>> poller.poll serves the same purpose of asyncore.loop, yes, but this is
>> supposed to be independent from asyncore.
>
> I agree with Ronald that it looks like a less-braindead version of
> asyncore. I don't think the select module is the right place.
What worries me most is that it might only look like a beter version of asyncore. I'd much rather see something based on the event-handling core of Twisted because that code base is used in production and is hence more likely to be correct w.r.t. odd real-world conditions. IIRC doing this was discussed at the language summit in 2011, but as Nick mentions that doesn't seem to be the focus of PEP 3153.
I am by the way not using Twisted myself, I'm at this time still using homebrew select loops and asyncore.
>
> Also, I don't know why you would specify poller.READ or poller.WRITE
> explicitly. Usually you are interested in all events, no?
You're not always interested in write events, those are only interesting when you have data that must be written to a socket.
Ronald
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4788 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20120524/c57c97d0/attachment.bin>
More information about the Python-ideas
mailing list