On Fri, Aug 14, 2020 at 03:51:12PM -0400, Mouse wrote: > > What I observe is that a process that explicitly ignores SIGCHLD > > (SIG_IGN), then forks a child which exits, when wait()ing for the > > child, gets ECHILD (i.e., wait returns -1 and errno is ECHILD). > > And the ECHILD return is delayed until all children have terminated > (ie, until there are no outstanding children, until the ECHILD return > is accurate). That's important for some use cases.
Huh, I hadn't realized (or expected) that. So I guess it's wrong to implement this by just detaching the child up front...? I'm guessing also then that it's the signal setting when the child exits that matters; I had always thought it was the signal setting when the child was forked. "signals are a semantic cesspool" -- David A. Holland dholl...@netbsd.org