projects
/
svn42.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
blocking sig child
[svn42.git]
/
door_daemon
/
sig_handler.c
diff --git
a/door_daemon/sig_handler.c
b/door_daemon/sig_handler.c
index
2a17ebe
..
5cdaaa1
100644
(file)
--- a/
door_daemon/sig_handler.c
+++ b/
door_daemon/sig_handler.c
@@
-96,6
+96,7
@@
int signal_init()
(sigaction(SIGHUP, &act, NULL) < 0) ||
(sigaction(SIGUSR1, &act, NULL) < 0) ||
(sigaction(SIGUSR2, &act, NULL) < 0) ||
(sigaction(SIGHUP, &act, NULL) < 0) ||
(sigaction(SIGUSR1, &act, NULL) < 0) ||
(sigaction(SIGUSR2, &act, NULL) < 0) ||
+ (sigaction(SIGCHLD, &act_ign, NULL) < 0) ||
(sigaction(SIGPIPE, &act_ign, NULL) < 0)) {
log_printf(ERROR, "signal handling init failed (sigaction error: %s)", strerror(errno));
(sigaction(SIGPIPE, &act_ign, NULL) < 0)) {
log_printf(ERROR, "signal handling init failed (sigaction error: %s)", strerror(errno));
@@
-158,6
+159,7
@@
void signal_stop()
sigaction(SIGUSR1, &act, NULL);
sigaction(SIGUSR2, &act, NULL);
sigaction(SIGPIPE, &act, NULL);
sigaction(SIGUSR1, &act, NULL);
sigaction(SIGUSR2, &act, NULL);
sigaction(SIGPIPE, &act, NULL);
+ sigaction(SIGCHLD, &act, NULL);
close(sig_pipe_fds[0]);
close(sig_pipe_fds[1]);
close(sig_pipe_fds[0]);
close(sig_pipe_fds[1]);