Antoine, How close are you to merging this into the Py3k branch? It looks like a solid piece of work, that can only get better in the period between now and the release of 3.2. But I don't want to rush you, and I only have had a brief look at your code. (I whipped up a small Dave Beazley example and was impressed by the performance of your code compared to the original py3k branch -- from 150% to 100% CPU usage according to top with only 2 threads.) My only suggestion so far: the description could use more explicit documentation on the various variables and macros and how they combine. I also expect that priority requests aren't important; it somehow seems strange that if multiple threads are all doing I/O each new thread whose I/O completes would get to preempt whoever else is active immediately. (Also the choice of *not* making a priority request when a read returns no bytes seems strange 00 if I read the code correctly.) Anyway, thanks for this work! -- --Guido van Rossum (python.org/~guido)