Interrupting find(1)
Guy Harris
guy at sun.uucp
Wed Sep 24 16:57:30 AEST 1986
> Chances are that when you hit ^C, the wait() is in process, and will
> end up killing the exec'd process, but the interrupt is ignored by
> find(1), and so it proceeds on its merry way exec'ing more things...
"Fixed in 4.3."
> 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".
> This behaviour was observed with 4.2bsd find(1) on both a Sun-2 and a
> Vax-750.
There's some chance you'll see it on other VAX models, too.
--
Guy Harris
{ihnp4, decvax, seismo, decwrl, ...}!sun!guy
guy at sun.com (or guy at sun.arpa)
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list