mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-11-25 04:35:44 +00:00
* job.c (set_child_handler_action_flags): [SV 41341]
Ensure signal handler is in place before alarm(1).
This commit is contained in:
parent
a7cac0f0e3
commit
88713683fe
1 changed files with 14 additions and 4 deletions
14
job.c
14
job.c
|
@ -1116,10 +1116,20 @@ set_child_handler_action_flags (int set_handler, int set_alarm)
|
|||
/* If we're about to enter the read(), set an alarm to wake up in a
|
||||
second so we can check if the load has dropped and we can start more
|
||||
work. On the way out, turn off the alarm and set SIG_DFL. */
|
||||
alarm (set_handler ? 1 : 0);
|
||||
sa.sa_handler = set_handler ? job_noop : SIG_DFL;
|
||||
if (set_handler)
|
||||
{
|
||||
sa.sa_handler = job_noop;
|
||||
sa.sa_flags = 0;
|
||||
sigaction (SIGALRM, &sa, NULL);
|
||||
alarm (1);
|
||||
}
|
||||
else
|
||||
{
|
||||
alarm (0);
|
||||
sa.sa_handler = SIG_DFL;
|
||||
sa.sa_flags = 0;
|
||||
sigaction (SIGALRM, &sa, NULL);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue