|
|
1.1 ! root 1: # include "monitor.h" ! 2: # include <ingres.h> ! 3: # include <aux.h> ! 4: # include <sccs.h> ! 5: ! 6: SCCSID(@(#)xwait.c 8.1 12/31/84) ! 7: ! 8: ! 9: ! 10: /* ! 11: ** WAIT FOR PROCESS TO DIE ! 12: ** ! 13: ** Used in edit() and shell() to terminate the subprocess. ! 14: ** Waits on pid "Xwaitpid". If this is zero, xwait() returns ! 15: ** immediately. ! 16: ** ! 17: ** This is called by "catchsig()" so as to properly terminate ! 18: ** on a rubout while in one of the subsystems. ! 19: ** ! 20: ** Trace Flags: ! 21: ** 41 ! 22: */ ! 23: ! 24: xwait() ! 25: { ! 26: int status; ! 27: register int i; ! 28: register char c; ! 29: ! 30: # ifdef xMTR2 ! 31: if (tTf(41, 0)) ! 32: printf("xwait: [%d]\n", Xwaitpid); ! 33: # endif ! 34: if (Xwaitpid == 0) ! 35: { ! 36: cgprompt(); ! 37: return; ! 38: } ! 39: while ((i = wait(&status)) != -1) ! 40: { ! 41: # ifdef xMTR2 ! 42: if (tTf(41, 1)) ! 43: printf("pid %d stat %d\n", i, status); ! 44: # endif ! 45: if (i == Xwaitpid) ! 46: break; ! 47: } ! 48: ! 49: Xwaitpid = 0; ! 50: ! 51: /* reopen query buffer */ ! 52: if ((Qryiop = fopen(Qbname, "a")) == NULL) ! 53: syserr("xwait: open %s", Qbname); ! 54: Notnull = 1; ! 55: ! 56: cgprompt(); ! 57: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.