Re: libev SIGCHLD handler

2012-05-10 Thread Vetoshkin Nikita
Oh, I think I got it. childcb() schedules EV_SIGNAL, which triggers another call to childcb() from eventloop. Am I right? 2012/5/10 Brandon Black : > On Thu, May 10, 2012 at 6:28 AM, Vetoshkin Nikita > wrote: >> So correct SIGCHLD handler should loop calling waitpid() until no zombi

libev SIGCHLD handler

2012-05-10 Thread Vetoshkin Nikita
Hi! Not sure if this issue was on the list, google suggests nothing. If I'm not mistaken, upon receiving SIGHCLD libev calls waitpid(-1, ...) only once, which is wrong because multiple SIGCHLDs can be merged into one if many child processes died while we were in sighandler code. So correct SIGCHLD