On Thu, Mar 5, 2009 at 1:30 PM, Neil Schemenauer
What I would like to see is a module that provides a low-level API for doing cross-platform asynchronous IO. The two necessary parts are:
* a wrapper that allows non-blocking reads and writes on channels (sockets, file descriptors, serial ports, etc)
* a select() or epoll like interface that allows waiting on multiple channels
Two thoughts: If you have a working select(), it will tell you the sockets on which read() and write() won't block, so non-blocking reads and writes are not necessary. On Windows, sockets, pipes, and files are each completely distinct types with their own functions and unifying them under one select()-like interface requires faking it using threads behind-the-scenes AFAIK. Personally, I'd be happy with continuing to only support socket objects on Windows. -- Daniel Stutzbach, Ph.D. President, Stutzbach Enterprises, LLC http://stutzbachenterprises.com