X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/0f33f9d1535a1384f97c0a4948c95447aa1e400a..bf61b5660299e88399304cd8eb9bacddc73a765b:/unix/pty.c diff --git a/unix/pty.c b/unix/pty.c index 8bd20fec..0084e64a 100644 --- a/unix/pty.c +++ b/unix/pty.c @@ -168,11 +168,13 @@ static void sigchld_handler(int signum) pid_t pid; int status; - pid = waitpid(-1, &status, WNOHANG); - if (pid == pty_child_pid && (WIFEXITED(status) || WIFSIGNALED(status))) { - pty_exit_code = status; - pty_child_dead = TRUE; - } + do { + pid = waitpid(-1, &status, WNOHANG); + if (pid == pty_child_pid && (WIFEXITED(status) || WIFSIGNALED(status))) { + pty_exit_code = status; + pty_child_dead = TRUE; + } + } while(pid > 0); errno = save_errno; }