From 33594a8d34d2030130c5f9f5b21085b7e05c1d3d Mon Sep 17 00:00:00 2001 From: Noah Friedman Date: Fri, 28 May 2004 21:58:31 +0000 Subject: [PATCH] process.c (Fdelete_process): Do not call remove_process. --- src/ChangeLog | 4 ++++ src/process.c | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 66b502d5bbc..f0c26f3b4f0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2004-05-28 Noah Friedman + + * process.c (Fdelete_process): Do not call remove_process. + 2004-05-28 Stefan Monnier * alloc.c (struct backtrace): Remove. diff --git a/src/process.c b/src/process.c index 82f61ffdfb2..a19880fc4f6 100644 --- a/src/process.c +++ b/src/process.c @@ -774,7 +774,18 @@ nil, indicating the current buffer's process. */) XSETINT (XPROCESS (process)->tick, ++process_tick); status_notify (); } - remove_process (process); + /* Do not call remove_process here; either status_notify has already done + it, or will do so the next time emacs polls for input. Thus network + processes are not immediately removed, and their sentinel will be + called. + + Since Fdelete_process is called by kill_buffer_processes, this also + means that a network process sentinel will run after the buffer is + dead, which would not be the case if status_notify() were called + unconditionally here. This way process sentinels observe consistent + behavior with regard to buffer-live-p. + */ + /* remove_process (process); */ return Qnil; } -- 2.39.5