I did some further testiong of libev's ability to embed event loops, and I
found they do not work anywhere. Unfortunately, the breakage is in the
kernels, with no apperent workaround possible.

My findings are:

- an epoll fd always returns as "readable" wether events are ready or not.

- on netbsd and freebsd, polling on a kqueue fd has no effect, it will
  not become readable even when events are pending.

that means on freebsd, the *highest-performing generic event mechanism* is
poll or select. what a shame.

(the breakage on netbsd and linux is unfortunate, but rules out only
i/o prioritising, while still leavign epoll and kqueue as generic event
mechanisms).

I will update the documentation accordingly (with the next version fo
the perl interface, multiple event loops will also be supported in perl,
so one can now choose kqueue there as well even on systems where it only
works for sockets).

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

_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev

Reply via email to