From 2f5b18ba2ff9c8ab8290fbd573e034f4a0d20a59 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 11 Jun 1992 05:12:44 +0000 Subject: [PATCH] Formerly commands.c.~6~ --- commands.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/commands.c b/commands.c index 7805491..30b7cf0 100644 --- a/commands.c +++ b/commands.c @@ -25,7 +25,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ extern int remote_kill (); -#if !defined(POSIX) && !defined(__GNU_LIBRARY__) +#ifndef HAVE_UNISTD_H extern int getpid (); #endif @@ -357,19 +357,24 @@ execute_file_commands (file) new_job (file); } -#define PROPAGATED_SIGNAL_MASK \ - (sigmask (SIGTERM) | sigmask (SIGINT) | sigmask (SIGHUP) | sigmask (SIGQUIT)) - /* Handle fatal signals. */ -int +RETSIGTYPE fatal_error_signal (sig) int sig; { signal (sig, SIG_DFL); -#ifndef USG +#ifdef POSIX + { + sigset_t set; + sigemptyset (&set); + (void) sigprocmask (SIG_SETMASK, &set, (sigset_t *) 0); + } +#else +#ifndef SIGSETMASK_MISSING (void) sigsetmask (0); #endif +#endif /* A termination signal won't be sent to the entire process group, but it means we want to kill the children. */ @@ -385,7 +390,7 @@ fatal_error_signal (sig) /* If we got a signal that means the user wanted to kill make, remove pending targets. */ - if (PROPAGATED_SIGNAL_MASK & sigmask (sig)) + if (sig == SIGTERM || sig == SIGINT || sig == SIGHUP || sig == SIGQUIT) { register struct child *c; -- 2.7.4