Mercurial > emacs
changeset 72727:5f2a73453aa3
(inhibit_sentinels): New variable.
(exec_sentinel): Test inhibit_sentinels.
(init_process): Initialize it.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 08 Sep 2006 12:08:54 +0000 |
parents | c7ba95ddeb1d |
children | 31f876da25bf |
files | src/process.c |
diffstat | 1 files changed, 15 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/process.c Fri Sep 08 12:07:46 2006 +0000 +++ b/src/process.c Fri Sep 08 12:08:54 2006 +0000 @@ -318,6 +318,12 @@ #define POLL_FOR_INPUT #endif +static Lisp_Object get_process (); +static void exec_sentinel (); + +extern EMACS_TIME timer_check (); +extern int timers_run; + /* Mask of bits indicating the descriptors that we wait for input on. */ static SELECT_TYPE input_wait_mask; @@ -386,15 +392,13 @@ #define DATAGRAM_CONN_P(proc) (0) #endif -static Lisp_Object get_process (); -static void exec_sentinel (); - -extern EMACS_TIME timer_check (); -extern int timers_run; - /* Maximum number of bytes to send to a pty without an eof. */ static int pty_max_bytes; +/* Nonzero means don't run process sentinels. This is used + when exiting. */ +int inhibit_sentinels; + #ifdef HAVE_PTYS #ifdef HAVE_PTY_H #include <pty.h> @@ -6559,6 +6563,9 @@ int outer_running_asynch_code = running_asynch_code; int waiting = waiting_for_user_input_p; + if (inhibit_sentinels) + return; + /* No need to gcpro these, because all we do with them later is test them for EQness, and none of them should be a string. */ odeactivate = Vdeactivate_mark; @@ -6888,6 +6895,8 @@ { register int i; + inhibit_sentinels = 0; + #ifdef SIGCHLD #ifndef CANNOT_DUMP if (! noninteractive || initialized)