libev-3.48 has just been released

Marc Lehmann schmorp at
Fri Oct 31 16:15:35 CET 2008

On Fri, Oct 31, 2008 at 12:18:05PM +0300, Kandalintsev Alexandre <exe at> wrote:
>> No, but you don't need any tests, the basic problem is that epoll doesn't
>> know about fork, so when a process forks, a) the parent will receive
>> events for file descriptors of the child and b) the parent can do nothing
>> about it, as it cannot remove the fds from its set. This property is by
>> design and well known. It's a feature, basically.
> Oh, the first link in google folows to your post in lkml :). I'll  

back then, I was additionally fooled by the (incorrect) documentation, and
wasn't aware of the actual long-reaching implications.

Just a few days ago I believed an additional pthread_atfork would suffice to
work around the issues :)

> carrefully read it and if I find any suggestions I'll mail you.

Well, you could even complain the lkml again - I can give a precise example
and the required conditions for the issue.

The most likely response will be "you should use edge triggering anyways"
or somesuch nonsense, though (but maybe if someone else tried... :).

In any case, the additional checking code inside libev isn't that
horrible, and 32 bit should really give good protection.

                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_    
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      pcg at
      -=====/_/_//_/\_,_/ /_/\_\

More information about the libev mailing list