State of IOCP work

Marc Lehmann schmorp at schmorp.de
Mon Nov 29 13:37:40 CET 2010


On Mon, Nov 29, 2010 at 11:02:36PM +1100, Mark Hammond <mhammond at skippinet.com.au> wrote:
> Understood - but to be clear, I wasn't suggesting libev performs the
> IO.  While neither libev or IOCP actually perform IO, they do
> provide a key mechanism enabling async IO to work in practice -
> depending on your definition of "work", of course... :)

No, libev really doesn't enable async I/O nor is it useful to do so. when
you use libev, then doing (event based) synchronous I/O is *far* more
performant (and *far* easier). using async I/O with I/O events mostly
defeats the purpose, as it's only adding overhead.

And while iocps themselves don't perform I/O, you must do I/O for them to
make any sense, so it's academic to say that iocps don't do I/O - they
can't be used without doing (some form of async) I/O. On some handles you
can get something like an event by doing a 0-size I/O, but that doesn't
work for all handles nor all event types - in practise, you have to
actually do some (async) I/O with iocps.

-- 
                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_              http://www.deliantra.net
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      schmorp at schmorp.de
      -=====/_/_//_/\_,_/ /_/\_\



More information about the libev mailing list