From: Paul Eggert Date: Mon, 17 Dec 2012 17:51:25 +0000 (-0800) Subject: Don't reraise SIGCHLD, as that can now lose. X-Git-Tag: emacs-24.3.90~173^2~7^2~564 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=207a7ef0531ca92468e19115a2c2064c9b22bfd4;p=emacs.git 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 --- 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