comparison src/process.c @ 16780:e9dc2569cb12

Include blockinput.h. (create_process): Block input around the fork.
author Richard M. Stallman <rms@gnu.org>
date Mon, 30 Dec 1996 01:26:08 +0000
parents 309a750fd5c0
children b61cbe595be5
comparison
equal deleted inserted replaced
16779:746c7bab3606 16780:e9dc2569cb12
101 #include "process.h" 101 #include "process.h"
102 #include "termhooks.h" 102 #include "termhooks.h"
103 #include "termopts.h" 103 #include "termopts.h"
104 #include "commands.h" 104 #include "commands.h"
105 #include "frame.h" 105 #include "frame.h"
106 #include "blockinput.h"
106 107
107 Lisp_Object Qprocessp; 108 Lisp_Object Qprocessp;
108 Lisp_Object Qrun, Qstop, Qsignal, Qopen, Qclosed; 109 Lisp_Object Qrun, Qstop, Qsignal, Qopen, Qclosed;
109 Lisp_Object Qlast_nonmenu_event; 110 Lisp_Object Qlast_nonmenu_event;
110 /* Qexit is declared and initialized in eval.c. */ 111 /* Qexit is declared and initialized in eval.c. */
1357 in the table after this function has returned; if it does 1358 in the table after this function has returned; if it does
1358 it might cause call-process to hang and subsequent asynchronous 1359 it might cause call-process to hang and subsequent asynchronous
1359 processes to get their return values scrambled. */ 1360 processes to get their return values scrambled. */
1360 XSETINT (XPROCESS (process)->pid, -1); 1361 XSETINT (XPROCESS (process)->pid, -1);
1361 1362
1363 BLOCK_INPUT;
1364
1362 { 1365 {
1363 /* child_setup must clobber environ on systems with true vfork. 1366 /* child_setup must clobber environ on systems with true vfork.
1364 Protect it from permanent change. */ 1367 Protect it from permanent change. */
1365 char **save_environ = environ; 1368 char **save_environ = environ;
1366 1369
1525 new_argv, 1, current_dir); 1528 new_argv, 1, current_dir);
1526 #endif /* not WINDOWSNT */ 1529 #endif /* not WINDOWSNT */
1527 } 1530 }
1528 environ = save_environ; 1531 environ = save_environ;
1529 } 1532 }
1533
1534 UNBLOCK_INPUT;
1530 1535
1531 /* This runs in the Emacs process. */ 1536 /* This runs in the Emacs process. */
1532 if (pid < 0) 1537 if (pid < 0)
1533 { 1538 {
1534 if (forkin >= 0) 1539 if (forkin >= 0)