]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't reraise SIGCHLD, as that can now lose.
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 17 Dec 2012 17:51:25 +0000 (09:51 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 17 Dec 2012 17:51:25 +0000 (09:51 -0800)
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
src/process.c

index 99be34482df2597d88e1fe72890cfa962729e8d7..d5071c541b4d2dfb379275b6094bf252ddee1647 100644 (file)
@@ -1,3 +1,13 @@
+2012-12-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       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  <eggert@cs.ucla.edu>
 
        * sysdep.c (emacs_abort): Bump backtrace size to 40.
index 7b21d060cf877fab4d7bad689fb068fa2b73ec0e..92d5e692d0b42d56f67cd2c884040340f922ef62 100644 (file)
@@ -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