Diff

Differences From Artifact [0d20ecce41]:

To Artifact [7fa93fca98]:


164
165
166
167
168
169
170

171
172
173
174
175






176
177
178
179
180
181
182
164
165
166
167
168
169
170
171





172
173
174
175
176
177
178
179
180
181
182
183
184







+
-
-
-
-
-
+
+
+
+
+
+








static void sigchld_handler(int signum)
{
    int save_errno = errno;
    pid_t pid;
    int status;

    do {
    pid = waitpid(-1, &status, WNOHANG);
    if (pid == pty_child_pid && (WIFEXITED(status) || WIFSIGNALED(status))) {
	pty_exit_code = status;
	pty_child_dead = TRUE;
    }
	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;
}

static void fatal_sig_handler(int signum)
{
    putty_signal(signum, SIG_DFL);
    cleanup_utmp();