POLL in different OSes
Rich Harkins
rharkins at thinkronize.com
Tue Oct 23 16:24:31 EDT 2001
If not a true poll emulator, I would like to see a C overlay on select that
would handle C-level selectable objects that would have flags on the objects
managed by C. This would mean that I wouldn't have to feed Pyhton lists to
select nor make select return three (possibly brand-spankin' new) lists as a
result. The way it would work in my twisted little universe is something
like this:
Create the polled objects...
>>> obj1=makepolled(fd1)
>>> obj2=makepolled(fd2)
Create the poller and add the polled...
>>> poller=makepoller()
>>> poller.addpolled(obj1)
>>> poller.addpolled(obj2)
Enable the events I want to know about...
>>> obj1.enable(PL_READ)
>>> obj2.enable(PL_WRITE)
Poll 'em...
>>> poller.poll()
Test the result...
>>> if obj1.has(PL_READ):
>>> # Read from obj1
>>> if obj2.has(PL_WRITE):
>>> # Write to obj2
This is more code, yes, than select but it could be implemented using either
C-select or C-poll depending on OS coditions. More importantly, lists did
not need to be fed to the poller nor does the poller produce new lists in
its operation. This should be a big win in performance (I think) over the
traditional Python select mechanism. I don't know the internals of the
Python implementation layer for select but I suspect this is the case.
Oh well, just wishful thinking...
Rich
More information about the Python-list
mailing list