xref: /csrg-svn/usr.bin/window/wwchild.c (revision 14407)
113921Sedward #ifndef lint
2*14407Sedward static	char *sccsid = "@(#)wwchild.c	2.1.1.1 83/08/09";
313921Sedward #endif
413921Sedward 
513921Sedward #include "ww.h"
613921Sedward #include <sys/wait.h>
713921Sedward 
813921Sedward wwchild()
913921Sedward {
10*14407Sedward 	register struct ww **wp;
1113921Sedward 	union wait w;
1213921Sedward 	int pid;
1313921Sedward 
14*14407Sedward 	while ((pid = wait3(&w, WNOHANG|WUNTRACED, (struct rusage *)0)) > 0) {
15*14407Sedward 		for (wp = wwindex; wp < &wwindex[NWW]; wp++) {
16*14407Sedward 			if (*wp && (*wp)->ww_state == WWS_HASPROC
17*14407Sedward 			    && (*wp)->ww_pid == pid) {
18*14407Sedward 				(*wp)->ww_state = WWS_DEAD;
1913970Sedward 				/*
20*14407Sedward 				(void) wwprintf(curwin,
2113962Sedward 					"\r\n%d: Died\r\n", pid);
2213970Sedward 				*/
2313921Sedward 				break;
2413921Sedward 			}
2513921Sedward 		}
2613970Sedward 		/*
27*14407Sedward 		if (wp >= &wwindex[NWW])
28*14407Sedward 			(void) wwprintf(curwin, "\r\n%d: No such child\r\n", pid);
2913970Sedward 		*/
3013921Sedward 	}
3113921Sedward }
32