diff options
author | Roland McGrath <roland@redhat.com> | 1993-05-06 21:30:10 +0000 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 1993-05-06 21:30:10 +0000 |
commit | 9596950898548766d97cf9eae0e1cb996a56d358 (patch) | |
tree | 35635e334aea12fb90055dbb73f963418e804371 | |
parent | 29de1a7e5aa3634b8b6f72cba09621817889f87f (diff) | |
download | gunmake-9596950898548766d97cf9eae0e1cb996a56d358.tar.gz |
Formerly job.c.~102~
-rw-r--r-- | job.c | 32 |
1 files changed, 23 insertions, 9 deletions
@@ -333,12 +333,24 @@ reap_children (block, err) /* If there are more commands to run, try to start them. */ if (job_next_command (c)) { - /* Check again whether to start remotely. - Whether or not we want to changes over time. - Also, start_remote_job may need state set up - by start_remote_job_p. */ - c->remote = start_remote_job_p (); - start_job_command (c); + if (handling_fatal_signal) + { + /* Never start new commands while we are dying. + Since there are more commands that wanted to be run, + the target was not completely remade. So we treat + this as if a command had failed. */ + c->file->command_state = cs_finished; + c->file->update_status = 1; + } + else + { + /* Check again whether to start remotely. + Whether or not we want to changes over time. + Also, start_remote_job may need state set up + by start_remote_job_p. */ + c->remote = start_remote_job_p (); + start_job_command (c); + } } switch (c->file->command_state) @@ -362,8 +374,9 @@ reap_children (block, err) } } - /* Notice if the target of the commands has been changed. */ - notice_finished_file (c->file); + if (! handling_fatal_signal) + /* Notice if the target of the commands has been changed. */ + notice_finished_file (c->file); if (debug_flag) printf ("Removing child 0x%08lx PID %d%s from chain.\n", @@ -375,7 +388,8 @@ reap_children (block, err) children = c->next; else lastc->next = c->next; - free_child (c); + if (! handling_fatal_signal) /* Avoid nonreentrancy. */ + free_child (c); /* There is now another slot open. */ --job_slots_used; |