[120] in Zephyr_Bugs

home help back first fref pref prev next nref lref last post

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.

home help back first fref pref prev next nref lref last post