summaryrefslogtreecommitdiff
path: root/src/server.c
diff options
context:
space:
mode:
authorArno Töll <arno@debian.org>2012-11-21 23:04:01 +0100
committerArno Töll <arno@debian.org>2012-11-21 23:04:01 +0100
commit7074704eb0b50f755f30ef21bbeb8fa064e2df5d (patch)
treeb84509f1b2ac0b565b03914c4fd4f907d9d4cefc /src/server.c
parentc0f89a02702b44a811cac511838cbd217ee5dd82 (diff)
downloadlighttpd-7074704eb0b50f755f30ef21bbeb8fa064e2df5d.tar.gz
Imported Upstream version 1.4.30upstream/1.4.30
Diffstat (limited to 'src/server.c')
-rw-r--r--src/server.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server.c b/src/server.c
index 5fcbfe4..bad6c07 100644
--- a/src/server.c
+++ b/src/server.c
@@ -1120,6 +1120,14 @@ int main (int argc, char **argv) {
"s", "fdevent_init failed");
return -1;
}
+
+ /* libev backend overwrites our SIGCHLD handler and calls waitpid on SIGCHLD; we want our own SIGCHLD handling. */
+#ifdef HAVE_SIGACTION
+ sigaction(SIGCHLD, &act, NULL);
+#elif defined(HAVE_SIGNAL)
+ signal(SIGCHLD, signal_handler);
+#endif
+
/*
* kqueue() is called here, select resets its internals,
* all server sockets get their handlers