--- ray/src/px/pcompos.c 1992/08/12 12:39:52 2.11 +++ ray/src/px/pcompos.c 1992/08/13 10:49:04 2.12 @@ -365,14 +365,32 @@ err: } +#ifdef NIX + +quit(code) +int code; +{ + exit(code); +} + +#else + +#include + quit(code) /* exit gracefully */ int code; { int status; - if (code == 0) /* reap any children */ - while (wait(&status) != -1) - if (code == 0) - code = status>>8 & 0xff; + if (code) { /* abnormal exit -- kill children */ + signal(SIGPIPE, SIG_IGN); + kill(0, SIGPIPE); + } + /* reap any children */ + while (wait(&status) != -1) + if (code == 0) + code = status>>8 & 0xff; exit(code); } + +#endif