rem: WDelayedActionSet = 1;
add: WDelayedActionSet++;
context: buryChild(int foo){    pid_t pid;    int status;    int save_errno = errno;    sigset_t sigs;    sigfillset(&sigs);    /* Block signals so that NotifyDeadProcess() doesn't get fux0red */    sigprocmask(SIG_BLOCK, &sigs, NULL);        /* R.I.P. */    /* If 2 or more kids exit in a small time window, before this handler gets     * the chance to get invoked, the SIGCHLD signals will be merged and only     * one SIGCHLD signal will be sent to us. We use a while loop to get all     * exited child status because we can't count on the number of SIGCHLD     * signals to know exactly how many kids have exited. -Dan     */    while ((pid=waitpid(-1, &status, WNOHANG))>0 || (pid<0 && errno==EINTR)) {	NotifyDeadProcess(pid, WEXITSTATUS(status));    }    WDelayedActionSet = 1;        sigprocmask(SIG_UNBLOCK, &sigs, NULL);    errno = save_errno;    }