From 207a7ef0531ca92468e19115a2c2064c9b22bfd4 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 17 Dec 2012 09:51:25 -0800 Subject: [PATCH] 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 --- src/ChangeLog | 10 ++++++++++ src/process.c | 8 +------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 99be34482df..d5071c541b4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2012-12-17 Paul Eggert + + Don't reraise SIGCHLD, as that can now lose (Bug#13192). + 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. + 2012-12-16 Paul Eggert * sysdep.c (emacs_abort): Bump backtrace size to 40. 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, Therefore, if we get an error reading and errno = EIO, just continue, because the child process has exited and should clean itself up soon (e.g. when we - get a SIGCHLD). - - However, it has been known to happen that the SIGCHLD - got lost. So raise the signal again just in case. - It can't hurt. */ + get a SIGCHLD). */ else if (nread == -1 && errno == EIO) { struct Lisp_Process *p = XPROCESS (proc); @@ -4795,8 +4791,6 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, p->tick = ++process_tick; pset_status (p, Qfailed); } - else - handle_child_signal (SIGCHLD); } #endif /* HAVE_PTYS */ /* If we can detect process termination, don't consider the -- 2.39.5