diff options
| author | Paul Eggert | 2013-06-23 17:31:31 -0700 |
|---|---|---|
| committer | Paul Eggert | 2013-06-23 17:31:31 -0700 |
| commit | fa55d2aaa23d5916b87a6980c9606466e07df124 (patch) | |
| tree | 673a2d3e86802766c2183a8d6f5744722fd73737 /src/callproc.c | |
| parent | 5e400cb3ed7b0ffc5f166e4cd9c4e18f4e58c14e (diff) | |
| download | emacs-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.c | 1 |
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); |