diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2014-01-09 11:08:19 +0100 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2014-01-09 11:08:19 +0100 |
| commit | 7f16d49028602df491aab42286875b60a5290364 (patch) | |
| tree | 8100b87ea48f55f147da3592d85e7415cba875dc | |
| parent | 906c4cdc3ff19ff7eb250fcc9904073fdfa02739 (diff) | |
prefork: Fix 100% CPU usage in parent process
When a child process is terminated, the parent calls waitpid() to check
for dead children. This returns -1 on error (e.g. there are no other
children or a signal interrupted waitpid()), the pid (> 0) for dead
children OR 0 if there are some children which are still alive.
Fixes gnosek/fcgiwrap#18.
| -rw-r--r-- | fcgiwrap.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -623,7 +623,7 @@ static void sigchld_handler(int dummy) { int status; - while ((dummy = waitpid(-1, &status, WNOHANG)) != -1) { + while ((dummy = waitpid(-1, &status, WNOHANG)) > 0) { /* sanity check */ if (nrunning > 0) nrunning--; |
