diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/process.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/process.c b/src/process.c index 77ca2551e46..ed535170214 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -5150,11 +5150,16 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display, | |||
| 5150 | It can't hurt. */ | 5150 | It can't hurt. */ |
| 5151 | else if (nread == -1 && errno == EIO) | 5151 | else if (nread == -1 && errno == EIO) |
| 5152 | { | 5152 | { |
| 5153 | /* Clear the descriptor now, so we only raise the signal once. */ | 5153 | /* Clear the descriptor now, so we only raise the |
| 5154 | FD_CLR (channel, &input_wait_mask); | 5154 | signal once. Don't do this is `process' is only |
| 5155 | FD_CLR (channel, &non_keyboard_wait_mask); | 5155 | a pty. */ |
| 5156 | if (XPROCESS (proc)->pid != -2) | ||
| 5157 | { | ||
| 5158 | FD_CLR (channel, &input_wait_mask); | ||
| 5159 | FD_CLR (channel, &non_keyboard_wait_mask); | ||
| 5156 | 5160 | ||
| 5157 | kill (getpid (), SIGCHLD); | 5161 | kill (getpid (), SIGCHLD); |
| 5162 | } | ||
| 5158 | } | 5163 | } |
| 5159 | #endif /* HAVE_PTYS */ | 5164 | #endif /* HAVE_PTYS */ |
| 5160 | /* If we can detect process termination, don't consider the process | 5165 | /* If we can detect process termination, don't consider the process |