55 lines
1.5 KiB
Diff
55 lines
1.5 KiB
Diff
--- src/sched.c.orig 2017-05-20 13:31:34.109614479 +0300
|
|
+++ src/sched.c 2017-05-20 13:34:25.934611402 +0300
|
|
@@ -31,7 +31,7 @@
|
|
#include "json.h"
|
|
#include "log.h"
|
|
|
|
-static sigset_t sigset;
|
|
+static sigset_t sigset_ng;
|
|
|
|
static int
|
|
gcd(int a, int b)
|
|
@@ -88,13 +88,13 @@
|
|
static int
|
|
setup_signals(void)
|
|
{
|
|
- if (sigemptyset(&sigset) == -1) {
|
|
+ if (sigemptyset(&sigset_ng) == -1) {
|
|
errorx("sigemptyset");
|
|
return 1;
|
|
}
|
|
|
|
#define ADD_SIG(_sig) \
|
|
- if (sigaddset(&sigset, _sig) == -1) { errorx("sigaddset(%d)", _sig); return 1; }
|
|
+ if (sigaddset(&sigset_ng, _sig) == -1) { errorx("sigaddset(%d)", _sig); return 1; }
|
|
|
|
/* Control signals */
|
|
ADD_SIG(SIGTERM);
|
|
@@ -125,7 +125,7 @@
|
|
#undef ADD_SIG
|
|
|
|
/* Block signals for which we are interested in waiting */
|
|
- if (sigprocmask(SIG_SETMASK, &sigset, NULL) == -1) {
|
|
+ if (sigprocmask(SIG_SETMASK, &sigset_ng, NULL) == -1) {
|
|
errorx("sigprocmask");
|
|
return 1;
|
|
}
|
|
@@ -164,7 +164,7 @@
|
|
bar_poll_timed(bar);
|
|
|
|
while (1) {
|
|
- sig = sigwaitinfo(&sigset, &siginfo);
|
|
+ sig = sigwaitinfo(&sigset_ng, &siginfo);
|
|
if (sig == -1) {
|
|
/* Hiding the bar may interrupt this system call */
|
|
if (errno == EINTR)
|
|
@@ -212,7 +212,7 @@
|
|
* Unblock signals (so subsequent syscall can be interrupted)
|
|
* and wait for child processes termination.
|
|
*/
|
|
- if (sigprocmask(SIG_UNBLOCK, &sigset, NULL) == -1)
|
|
+ if (sigprocmask(SIG_UNBLOCK, &sigset_ng, NULL) == -1)
|
|
errorx("sigprocmask");
|
|
while (waitpid(-1, NULL, 0) > 0)
|
|
continue;
|