aboutsummaryrefslogtreecommitdiffstats
path: root/executor/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'executor/common.h')
-rw-r--r--executor/common.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/executor/common.h b/executor/common.h
index 19da79b5e..472db554c 100644
--- a/executor/common.h
+++ b/executor/common.h
@@ -658,7 +658,7 @@ void loop()
int status = 0;
uint64_t start = current_time_ms();
for (;;) {
- int res = waitpid(pid, &status, __WALL | WNOHANG);
+ int res = waitpid(-1, &status, __WALL | WNOHANG);
int errno0 = errno;
if (res == pid)
break;
@@ -666,7 +666,8 @@ void loop()
if (current_time_ms() - start > 5 * 1000) {
kill(-pid, SIGKILL);
kill(pid, SIGKILL);
- waitpid(pid, &status, __WALL);
+ while (waitpid(-1, &status, __WALL) != pid) {
+ }
break;
}
}