# HG changeset patch # User Noah Friedman # Date 1085781511 0 # Node ID b2e8aa96ff9d735b1350ad096276aeccb3d88f91 # Parent 52796407db5158d9cf28a22c06bcad9611fa3544 process.c (Fdelete_process): Do not call remove_process. diff -r 52796407db51 -r b2e8aa96ff9d src/ChangeLog --- a/src/ChangeLog Fri May 28 21:21:17 2004 +0000 +++ b/src/ChangeLog Fri May 28 21:58:31 2004 +0000 @@ -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 -r 52796407db51 -r b2e8aa96ff9d src/process.c --- a/src/process.c Fri May 28 21:21:17 2004 +0000 +++ b/src/process.c Fri May 28 21:58:31 2004 +0000 @@ -774,7 +774,18 @@ 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; }