- while ((pid = wait3(&w, WNOHANG|WUNTRACED, 0)) > 0) {
- for (wp = _wwhead; wp; wp = wp->ww_next) {
- if (wp->ww_pid == pid) {
- wp->ww_state = WW_DEAD;
- /*
- (void) sprintf(buf, "\r\n%d: Died\r\n", pid);
- wwputstr(buf);
- */
+ olderrno = errno;
+ while ((pid =
+ wait3((int *)&w, WNOHANG|WUNTRACED, (struct rusage *)0)) > 0) {
+ for (wp = wwindex; wp < &wwindex[NWW]; wp++) {
+ if (*wp && (*wp)->ww_state == WWS_HASPROC
+ && (*wp)->ww_pid == pid) {
+ (*wp)->ww_state = WWS_DEAD;
+ collected = 1;