diff --git a/memcr.c b/memcr.c index 51a2f04..94c9cd8 100644 --- a/memcr.c +++ b/memcr.c @@ -915,7 +915,7 @@ static void clear_pid_on_worker_exit_non_blocking(pid_t worker) { for (int i=0; isi_pid == waitpid(sip->si_pid, &status, WNOHANG)) { - fprintf(stdout, "[+] Worker %d exit.\n", sip->si_pid); - clear_pid_on_worker_exit_non_blocking(sip->si_pid); + while ((pid = waitpid(-1, &status, WNOHANG)) > 0) { + clear_pid_on_worker_exit_non_blocking(pid); } + errno = _errno; }