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