Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!seismo!hao!hplabs!sri-unix!edhall@rand-unix From: edhall@rand-unix@sri-unix.UUCP Newsgroups: net.unix-wizards Subject: RE: UNIX IPC Message-ID: <11916@sri-arpa.UUCP> Date: Wed, 21-Sep-83 17:36:00 EDT Article-I.D.: sri-arpa.11916 Posted: Wed Sep 21 17:36:00 1983 Date-Received: Mon, 26-Sep-83 08:19:02 EDT Lines: 24 Signals as implemented in V7 UNIX have too may quirks for IPC, as I'm sure several messages will point out. But 4.1BSD fixes (?) the problem in its `jobs' library (see JOBS(3J) and SIGSYS(2J)) in the Berkeley manual). A mechanism is provided which allows further signals to be defered after the first occurance, avoiding the problem of V7's reset-to-default after signal. The ability is also provided to hold (rather than simply ignore) signals during critical sections. That all this works is illustrated by CSH, which simply sits in pause() and only calls wait() (actually wait3()) when it receives a special SIGCHLD signal indicating a status change in a child process. Note that dropping a signal would hang the shell! Much of the signal mechanism was re-worked in 4.1BSD to provide job- control. I don't know if it has changed again with 4.2... Compatability with the old signal scheme is provided by having a per-process flag which is set only when any of the new stuff is used. (Smells like a kludge, no?) -Ed Hall edhall@rand-unix decvax!randvax!edhall