|
|
1.1 root 1:
2: /*
3: oswait( pid ) waits for the termination of the process with
4: id pid.
5: */
6:
7: #include "spitblks.h"
8: #include "spitio.h"
9: #include <signal.h>
10:
11: oswait( pid )
12:
13: int pid;
14:
15: {
16: int deadpid, status;
17: register (*hstat)(), (*istat)(), (*qstat)();
18: extern struct chfcb *rzfcb;
19: struct chfcb *chptr;
20:
21: istat = signal( SIGINT,SIG_IGN );
22: qstat = signal( SIGQUIT,SIG_IGN );
23: hstat = signal( SIGHUP,SIG_IGN );
24:
25: while ( (deadpid = wait( &status )) != pid &&
26: (deadpid != -1) ) {
27: for ( chptr = rzfcb; chptr != 0; chptr = chptr -> nxt ) {
28: if ( deadpid == chptr -> fcp -> iob -> pid ) {
29: chptr -> fcp -> iob -> flg |= IO_DED;
30: break;
31: }
32: }
33: }
34:
35: signal( SIGINT,istat );
36: signal( SIGQUIT,qstat );
37: signal( SIGHUP,hstat );
38:
39: return status;
40: }
41:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.