summaryrefslogtreecommitdiff
path: root/src/callproc.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2013-06-23 11:18:47 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2013-06-23 11:18:47 -0700
commitc7041908b82205af2f812f9de782003d975f53da (patch)
tree6d0d071cc0cd36cf172a18b92e5b1f41c3299b80 /src/callproc.c
parent18bb9e21f3a95114d34947283e76a973692b526c (diff)
downloademacs-c7041908b82205af2f812f9de782003d975f53da.tar.gz
Try to avoid malloc SEGVs on Cygwin.
* callproc.c, process.h (block_child_signal, unblock_child_signal): Now extern. * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify. * process.c (catch_child_signal): Block SIGCHLD while futzing with the SIGCHLD handler, since the code is not atomic and (due to glib) signals may be arriving now. * sysdep.c (init_signals): Do not catch child signals here; 'main' now does that later, at a safer time. Fixes: debbugs:14569
Diffstat (limited to 'src/callproc.c')
-rw-r--r--src/callproc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/callproc.c b/src/callproc.c
index 745d58c45f4..f0aa8222342 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -84,7 +84,7 @@ static int synch_process_fd;
/* Block SIGCHLD. */
-static void
+void
block_child_signal (void)
{
sigset_t blocked;
@@ -95,7 +95,7 @@ block_child_signal (void)
/* Unblock SIGCHLD. */
-static void
+void
unblock_child_signal (void)
{
pthread_sigmask (SIG_SETMASK, &empty_mask, 0);