aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/process.c b/src/process.c
index bdf16b7dbd2..f2f33a9eafc 100644
--- a/src/process.c
+++ b/src/process.c
@@ -4888,15 +4888,20 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd,
4888 It can't hurt. */ 4888 It can't hurt. */
4889 else if (nread == -1 && errno == EIO) 4889 else if (nread == -1 && errno == EIO)
4890 { 4890 {
4891 /* Clear the descriptor now, so we only raise the signal once. */ 4891 /* Don't do anything if only a pty, with no associated
4892 FD_CLR (channel, &input_wait_mask); 4892 process (bug#10933). */
4893 FD_CLR (channel, &non_keyboard_wait_mask); 4893 if (XPROCESS (proc)->pid != -2) {
4894 4894 /* Clear the descriptor now, so we only raise the signal
4895 kill (getpid (), SIGCHLD); 4895 once. */
4896 FD_CLR (channel, &input_wait_mask);
4897 FD_CLR (channel, &non_keyboard_wait_mask);
4898
4899 kill (getpid (), SIGCHLD);
4900 }
4896 } 4901 }
4897#endif /* HAVE_PTYS */ 4902#endif /* HAVE_PTYS */
4898 /* If we can detect process termination, don't consider the process 4903 /* If we can detect process termination, don't consider the
4899 gone just because its pipe is closed. */ 4904 process gone just because its pipe is closed. */
4900#ifdef SIGCHLD 4905#ifdef SIGCHLD
4901 else if (nread == 0 && !NETCONN_P (proc) && !SERIALCONN_P (proc)) 4906 else if (nread == 0 && !NETCONN_P (proc) && !SERIALCONN_P (proc))
4902 ; 4907 ;