Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbatt!ihnp4!qantel!lll-lcc!styx!twg-ap!amdahl!pyramid!nsc!csi!epimass!oliveb!hplabs!sdcrdcf!randvax!edhall From: edhall@randvax.UUCP (Ed Hall) Newsgroups: net.bugs.4bsd,net.unix-wizards Subject: Re: Interrupting find(1) Message-ID: <557@randvax.UUCP> Date: Fri, 26-Sep-86 03:40:08 EDT Article-I.D.: randvax.557 Posted: Fri Sep 26 03:40:08 1986 Date-Received: Tue, 30-Sep-86 19:49:52 EDT References: <334@yabbie.rmit.oz> <7566@sun.uucp> Reply-To: edhall@rand-unix.UUCP (Ed Hall) Organization: Rand Corp., Santa Monica Lines: 14 Xref: watmath net.bugs.4bsd:2360 net.unix-wizards:19719 In article <7566@sun.uucp> guy@sun.uucp (Guy Harris) writes: >> The fix would be simply to change SIG_IGN to SIG_HOLD in both statements. > >But not that way. SIG_HOLD only appears in "/usr/include/sys/signal.h" as a >historical holdover; setting the signal action to SIG_HOLD will *not* set >the "p_sigmask" bit for that signal, so it won't hold it. The correct fix >is to put a "sigblock"/"sigsetmask" pair around the "wait". --or look at the status returned by wait(), and exit appropriately if the child process was killed by SIGINT... This would even work on Vanilla V7 systems (assuming any are still around). -Ed Hall decvax!randvax!edhall