[Python-Dev] epoll() and kqueue wrapper for the select module

Ross Cohen rcohen at snurgle.org
Thu Dec 20 19:39:26 CET 2007


On Thu, Dec 20, 2007 at 06:08:47PM +0100, Christian Heimes wrote:

> I've written wrappers for both mechanisms. Both wrappers are inspired
> from Twisted and select.poll()'s API. The interface is more Pythonic
> than the available wrappers and it reduced the burden on the user. The
> users don't have to deal with low level control file descriptors and the
> fd is closed automatically when the object is collected.

Did you look at the python-epoll module which has been in the Cheese
Shop for quite some time? There is no messing with a low level control
file descriptor and it presents an identical interface to select.poll().

I would claim this whole new interface:

> epoll interface
> 
> >>> ep = select.epoll(1)
> >>> ep.register(fd, select.EPOLL_IN | select.EPOLL_OUT)
> >>> ep.modify(fd, select.EPOLL_OUT)
> >>> events = ep.wait(1, 1000)
> >>> ep.unregister(fd)

Is a greater burden on the user than:

>>> import epoll as select

I would also claim that adding a new interface to accomplish the same
task is not more pythonic. But I did write the python-epoll module in
question, so I may be a bit biased.

Ross


More information about the Python-Dev mailing list