Re: embed kqueue/epoll heads-up
On Sat, Dec 29, 2007 at 02:25:51PM -0700, Tony Arcieri <[EMAIL PROTECTED]> wrote: > > - on netbsd and freebsd, polling on a kqueue fd has no effect, it will > > not become readable even when events are pending. > > > > Are you polling with poll(2)? Among other things, yes. > I was under the impression one of the design attributes of kqueues was you > could monitor one with another... Thats true, as well as monitoring them with any other mechanism that can monitor file descriptors. -- The choice of a Deliantra, the free code+content MORPG -==- _GNU_ http://www.deliantra.net ==-- _ generation ---==---(_)__ __ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / [EMAIL PROTECTED] -=/_/_//_/\_,_/ /_/\_\ ___ libev mailing list libev@lists.schmorp.de http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev
Re: embed kqueue/epoll heads-up
On Dec 20, 2007 7:38 PM, Marc Lehmann <[EMAIL PROTECTED]> wrote: > - on netbsd and freebsd, polling on a kqueue fd has no effect, it will > not become readable even when events are pending. > Are you polling with poll(2)? I was under the impression one of the design attributes of kqueues was you could monitor one with another... -- Tony Arcieri ClickCaster, Inc. [EMAIL PROTECTED] ___ libev mailing list libev@lists.schmorp.de http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev
embed kqueue/epoll heads-up
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 libev@lists.schmorp.de http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev