On Fri, 2 Nov 2012 22:29:09 +0100 Sturla Molden email@example.com wrote:
IOCP might be the easiest way to get high performance on Windows, but certainly not the only.
IOCP is a simple user-space wrapper for a thread-pool and overlapped (i.e. asynchronous) i/o. There is nothing IOCP can do that cannot be done with a pool of threads and non-blocking read or write operations.
Windows certainly has a function to select among multiple wait objects, called WaitForMultipleObjects. If open files are associated with event objects signalling "ready-to-read" or "ready-to-write", that is the basic machinery of an Unix select() function.
Hmm, but the basic problem with WaitForMultipleObjects is that it has a hard limit of 64 objects you can wait on.