[120] in Zephyr_Bugs
Re: zwgc in zephyr locker RT (soup)
raeburn@ATHENA.MIT.EDU (raeburn@ATHENA.MIT.EDU)
Mon Oct 22 16:20:45 1990
The SIGCHLD handler in zwgc/main.c appears to be responsible.
/* clean up ALL the waiting children, in case we get hit with
multiple SIGCHLD's at once, and don't process in time. */
static signal_child()
{
union wait status;
int pid;
do {
pid = wait3(&status, WNOHANG, (struct rusage *)0);
} while (pid != 0 && pid != -1);
}
If a SIGCHLD should arrive between the time when a read() call returns
-1 and when `errno' is actually examined, it seems guaranteed that
`errno' will be ECHILD.