Sat Jun 22 14:56:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>

* job.c (reap_children): Don't call die if handling_fatal_signal.
	* job.c (start_job_command): Call block_sigs.
	(block_sigs): New function, broken out of start_job_command.
	(reap_children): Block fatal signals around removing dead child from
	chain and adjusting job_slots_used.
	* job.h: Declare block_sigs.
	* job.c (reap_children): Quiescent value of shell_function_pid is
	zero, not -1.
This commit is contained in:
Roland McGrath 1996-06-22 21:42:10 +00:00
parent 610526fee7
commit bdc49369eb

10
job.c
View file

@ -601,7 +601,9 @@ reap_children (block, err)
/* If the job failed, and the -k flag was not given, die,
unless we are already in the process of dying. */
if (!err && child_failed && !keep_going_flag)
if (!err && child_failed && !keep_going_flag &&
/* fatal_error_signal will die with the right signal. */
!handling_fatal_signal)
die (2);
}
@ -636,6 +638,10 @@ free_child (child)
free ((char *) child);
}
#ifdef POSIX
extern sigset_t fatal_signal_set;
#endif
void
block_sigs ()
{
@ -656,8 +662,6 @@ unblock_sigs ()
return;
}
#else
extern sigset_t fatal_signal_set;
void
unblock_sigs ()
{