On Sat, Nov 3, 2012 at 8:02 AM, Itamar Turner-Trauring <itamar@futurefoundries.com> wrote:

Twisted supports both select()-style loops and IOCP, in a way that is transparent to user code. They key is presenting an async API to users (e.g. Protocol.dataReceived gets called with bytes), rather than e.g. trying to pretend they're talking to a socket-like object you can call recv() on.

Although, if you're using a yield based API (or coroutines) you can have a recv()/read()-style API with IOCP as well.