diff options
| author | Paul Eggert | 2012-12-17 09:51:25 -0800 |
|---|---|---|
| committer | Paul Eggert | 2012-12-17 09:51:25 -0800 |
| commit | 207a7ef0531ca92468e19115a2c2064c9b22bfd4 (patch) | |
| tree | b6cda053458b082f2fb800b432ca8ea288453f84 /src/process.c | |
| parent | 191562422a2d6d54214e24c349a471ac21ebf178 (diff) | |
| download | emacs-207a7ef0531ca92468e19115a2c2064c9b22bfd4.tar.gz emacs-207a7ef0531ca92468e19115a2c2064c9b22bfd4.zip | |
Don't reraise SIGCHLD, as that can now lose.
With the 2012-12-03 fix for Bug#12980 in place, an old workaround
for some of that bug's symptoms can now cause Emacs to abort.
Remove the workaround.
* process.c (wait_reading_process_output): Don't reraise SIGCHLD.
The bug that caused SIGCHLD to get lost has been fixed, and the
workaround for it can now cause Emacs to abort.
Fixes: debbugs:13192
Diffstat (limited to 'src/process.c')
| -rw-r--r-- | src/process.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/src/process.c b/src/process.c index 7b21d060cf8..92d5e692d0b 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -4773,11 +4773,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, | |||
| 4773 | Therefore, if we get an error reading and errno = | 4773 | Therefore, if we get an error reading and errno = |
| 4774 | EIO, just continue, because the child process has | 4774 | EIO, just continue, because the child process has |
| 4775 | exited and should clean itself up soon (e.g. when we | 4775 | exited and should clean itself up soon (e.g. when we |
| 4776 | get a SIGCHLD). | 4776 | get a SIGCHLD). */ |
| 4777 | |||
| 4778 | However, it has been known to happen that the SIGCHLD | ||
| 4779 | got lost. So raise the signal again just in case. | ||
| 4780 | It can't hurt. */ | ||
| 4781 | else if (nread == -1 && errno == EIO) | 4777 | else if (nread == -1 && errno == EIO) |
| 4782 | { | 4778 | { |
| 4783 | struct Lisp_Process *p = XPROCESS (proc); | 4779 | struct Lisp_Process *p = XPROCESS (proc); |
| @@ -4795,8 +4791,6 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, | |||
| 4795 | p->tick = ++process_tick; | 4791 | p->tick = ++process_tick; |
| 4796 | pset_status (p, Qfailed); | 4792 | pset_status (p, Qfailed); |
| 4797 | } | 4793 | } |
| 4798 | else | ||
| 4799 | handle_child_signal (SIGCHLD); | ||
| 4800 | } | 4794 | } |
| 4801 | #endif /* HAVE_PTYS */ | 4795 | #endif /* HAVE_PTYS */ |
| 4802 | /* If we can detect process termination, don't consider the | 4796 | /* If we can detect process termination, don't consider the |