diff --git a/src/Mayaqua/Unix.c b/src/Mayaqua/Unix.c index 0c3778df..84da9326 100644 --- a/src/Mayaqua/Unix.c +++ b/src/Mayaqua/Unix.c @@ -2140,9 +2140,13 @@ void UnixMemoryFree(void *addr) // SIGCHLD handler void UnixSigChldHandler(int sig) { + int old_errno = errno; + // Recall the zombie processes while (waitpid(-1, NULL, WNOHANG) > 0); signal(SIGCHLD, UnixSigChldHandler); + + errno = old_errno; } // Disable core dump