From 02b78d7ed07108fe1f7a7f3cc8323ccb78ee6f30 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 21 Apr 1992 07:50:13 +0000 Subject: Formerly commands.c.~3~ --- commands.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'commands.c') diff --git a/commands.c b/commands.c index 94097e2..31f43ad 100644 --- a/commands.c +++ b/commands.c @@ -367,11 +367,9 @@ fatal_error_signal (sig) if (sig == SIGTERM) { register struct child *c; - push_signals_blocked_p (1); for (c = children; c != 0; c = c->next) if (!c->remote) (void) kill (c->pid, SIGTERM); - pop_signals_blocked_p (); } /* If we got a signal that means the user @@ -380,7 +378,6 @@ fatal_error_signal (sig) if (PROPAGATED_SIGNAL_MASK & sigmask (sig)) { register struct child *c; - push_signals_blocked_p (1); /* Remote children won't automatically get signals sent to the process group, so we must send them. */ @@ -391,15 +388,15 @@ fatal_error_signal (sig) for (c = children; c != 0; c = c->next) delete_child_targets (c); - pop_signals_blocked_p (); - /* Clean up the children. We don't just use the call below because we don't want to print the "Waiting for children" message. */ - wait_for_children (0, 0); + while (job_slots_used > 0) + reap_children (1, 0); } else /* Wait for our children to die. */ - wait_for_children (0, 1); + while (job_slots_used > 0) + reap_children (1, 1); /* Delete any non-precious intermediate files that were made. */ -- cgit v1.2.3