On Thu, Mar 5, 2009 at 1:30 PM, Neil Schemenauer <nas@arctrix.com> wrote:
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