summaryrefslogtreecommitdiff
path: root/src/callproc.c
diff options
context:
space:
mode:
authorKim F. Storm <storm@cua.dk>2004-11-02 10:10:35 +0000
committerKim F. Storm <storm@cua.dk>2004-11-02 10:10:35 +0000
commitaba637ec5be01e0210e52f16d22d1ad4c3b27eb8 (patch)
tree64f636313880a19609206ab9758dd7c24bf94151 /src/callproc.c
parentae8bc416df377a08031194848acd6633f407af1b (diff)
downloademacs-aba637ec5be01e0210e52f16d22d1ad4c3b27eb8.tar.gz
emacs-aba637ec5be01e0210e52f16d22d1ad4c3b27eb8.tar.bz2
emacs-aba637ec5be01e0210e52f16d22d1ad4c3b27eb8.zip
From: YAMAMOTO Mitsuharu
(Fcall_process): Block input around vfork.
Diffstat (limited to 'src/callproc.c')
-rw-r--r--src/callproc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/callproc.c b/src/callproc.c
index 5d7447d94f2..e251fc65941 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -83,6 +83,7 @@ extern int errno;
#include "process.h"
#include "syssignal.h"
#include "systty.h"
+#include "blockinput.h"
#ifdef MSDOS
#include "msdos.h"
@@ -624,6 +625,8 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
pid = child_setup (filefd, fd1, fd_error, (char **) new_argv,
0, current_dir);
#else /* not WINDOWSNT */
+ BLOCK_INPUT;
+
pid = vfork ();
if (pid == 0)
@@ -641,6 +644,8 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */)
child_setup (filefd, fd1, fd_error, (char **) new_argv,
0, current_dir);
}
+
+ UNBLOCK_INPUT;
#endif /* not WINDOWSNT */
/* The MSDOS case did this already. */