Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!seismo!hao!hplabs!sri-unix!gwyn@brl-vld From: gwyn%brl-vld@sri-unix.UUCP Newsgroups: net.unix-wizards Subject: Re: New? idea Message-ID: <15640@sri-arpa.UUCP> Date: Tue, 17-Jan-84 09:28:16 EST Article-I.D.: sri-arpa.15640 Posted: Tue Jan 17 09:28:16 1984 Date-Received: Thu, 19-Jan-84 04:52:20 EST Lines: 18 From: Doug Gwyn (VLD/VMB) One thing you didn't mention is that wait(2) will block until all children have terminated under UNIX System V if SIGCLD is set to SIG_IGN. On 4.1cBSD at least, setting the handler for SIGCHLD to SIG_IGN was NOT the same as setting it to SIG_DFL in that this state was detectable by user code as a non-default mode. I found this out the hard way when my wait(2) emulation for UNIX System V on 4.1cBSD went into a loop when emulated code was run by csh or telnetd users. Turns out csh and telnetd were sloppy about resetting SIGCHLD and had set it to SIG_IGN by mistake. The 4.1cBSD manual had more information about this than the 4.2BSD manual seems to have. I urge people to set SIGCHLD to SIG_DFL if they want it totally ignored, since SIG_IGN has different semantics for UNIX System V programs.