aboutsummaryrefslogtreecommitdiffstats
path: root/src/callproc.c
diff options
context:
space:
mode:
authorPaul Eggert2013-06-23 17:31:31 -0700
committerPaul Eggert2013-06-23 17:31:31 -0700
commitfa55d2aaa23d5916b87a6980c9606466e07df124 (patch)
tree673a2d3e86802766c2183a8d6f5744722fd73737 /src/callproc.c
parent5e400cb3ed7b0ffc5f166e4cd9c4e18f4e58c14e (diff)
downloademacs-fa55d2aaa23d5916b87a6980c9606466e07df124.tar.gz
emacs-fa55d2aaa23d5916b87a6980c9606466e07df124.zip
A more-conservative workaround for Cygwin SIGCHLD issues.
* callproc.c (Fcall_process): * process.c (create_process): Make sure SIGCHLD is caught before we fork, since Emacs startup no arranges to catch SIGCHLD. * process.c (lib_child_handler): Initialize to null, not to dummy_handler. (catch_child_signal): Allow self to be called lazily. Do nothing if it's already been called. Assume caller has blocked SIGCHLD (all callers do now). * emacs.c (main): Do not catch SIGCHLD here; defer it until just before it's really needed. * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here, since it hasn't been caught yet. Fixes: debbugs:14569
Diffstat (limited to 'src/callproc.c')
-rw-r--r--src/callproc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/callproc.c b/src/callproc.c
index f0aa8222342..7db984fa71c 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -613,6 +613,7 @@ usage: (call-process PROGRAM &optional INFILE DESTINATION DISPLAY &rest ARGS) *
613 613
614 block_input (); 614 block_input ();
615 block_child_signal (); 615 block_child_signal ();
616 catch_child_signal ();
616 617
617#ifdef WINDOWSNT 618#ifdef WINDOWSNT
618 pid = child_setup (filefd, fd1, fd_error, new_argv, 0, current_dir); 619 pid = child_setup (filefd, fd1, fd_error, new_argv, 0, current_dir);