8 int wait_pid(wstat,pid) int *wstat; int pid;
13 r = waitpid(pid,wstat,0);
14 while ((r == -1) && (errno == error_intr));
21 /* XXX breaks down with more than two children */
22 static int oldpid = 0;
23 static int oldwstat; /* defined if(oldpid) */
25 int wait_pid(wstat,pid) int *wstat; int pid;
29 if (pid == oldpid) { *wstat = oldwstat; oldpid = 0; return pid; }
33 if ((r != pid) && (r != -1)) { oldwstat = *wstat; oldpid = r; continue; }
35 while ((r == -1) && (errno == error_intr));