From 3adaf8dba9970fdef22f49e3379b408c73719a48 Mon Sep 17 00:00:00 2001 From: Sergey Lyubka <valenok@gmail.com> Date: Mon, 7 Oct 2013 17:29:07 +0100 Subject: [PATCH] Reaping zombies properly --- build/main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/build/main.c b/build/main.c index 1a98b39fd..dd4f03ebf 100644 --- a/build/main.c +++ b/build/main.c @@ -78,11 +78,15 @@ static struct mg_context *ctx; // Set by start_mongoose() #endif /* !CONFIG_FILE */ static void WINCDECL signal_handler(int sig_num) { + // Reinstantiate signal handler + signal(sig_num, signal_handler); + #if !defined(_WIN32) // Do not do the trick with ignoring SIGCHLD, cause not all OSes (e.g. QNX) // reap zombies if SIGCHLD is ignored. On QNX, for example, waitpid() // fails if SIGCHLD is ignored, making system() non-functional. if (sig_num == SIGCHLD) { + printf("dssfdsfds\n"); do {} while (waitpid(-1, &sig_num, WNOHANG) > 0); } else #endif @@ -383,6 +387,9 @@ static void start_mongoose(int argc, char *argv[]) { // Setup signal handler: quit on Ctrl-C signal(SIGTERM, signal_handler); signal(SIGINT, signal_handler); +#ifndef _WIN32 + signal(SIGCHLD, signal_handler); +#endif // Start Mongoose ctx = mg_start((const char **) options, event_handler, NULL); -- GitLab