libev-3.48 has just been released
schmorp at schmorp.de
Thu Oct 30 13:10:24 CET 2008
I am pleased to announce libev 3.48.
- libev now tries very hard to work around problems with fork and spurious
event notifications by using a 32 bit generation counter to a) verify
that an event is uptodate and b) to recreate the kernel state from scratch
when a spurious event is received.
- further optimise away the EPOLL_CTL_ADD/MOD combo in the epoll
backend by assuming the kernel event mask hasn't changed if
ADD fails with EEXIST.
- use memset to initialise most arrays now and do away with the
- expand time-out strategies into a "Be smart about timeouts" section
in the dcoumentation.
- fix a bug where ev_default would not initialise the default
loop again after it was destroyed with ev_default_destroy.
If anybody is interested in the gory details of why this was necessary
with epoll, I can expand the topic in more detail. What prompted the
change was the realisation that you cannot work around the breakage
from the child process after a fork, and spurious notifications can be
generated in cases where they are hard to work around for the application.
The choice of a Deliantra, the free code+content MORPG
-----==- _GNU_ http://www.deliantra.net
----==-- _ generation
---==---(_)__ __ ____ __ Marc Lehmann
--==---/ / _ \/ // /\ \/ / pcg at goof.com
More information about the libev