]> git.eshelyaron.com Git - emacs.git/commitdiff
process.c (Fdelete_process): Do not call remove_process.
authorNoah Friedman <friedman@splode.com>
Fri, 28 May 2004 21:58:31 +0000 (21:58 +0000)
committerNoah Friedman <friedman@splode.com>
Fri, 28 May 2004 21:58:31 +0000 (21:58 +0000)
src/ChangeLog
src/process.c

index 66b502d5bbcffb6eb7fce93296e9dad563c8d848..f0c26f3b4f091987e2c66110ecb4013159064117 100644 (file)
@@ -1,3 +1,7 @@
+2004-05-28  Noah Friedman  <friedman@splode.com>
+
+       * process.c (Fdelete_process): Do not call remove_process.
+
 2004-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * alloc.c (struct backtrace): Remove.
index 82f61ffdfb2853693105f842bebaa36c25c054f7..a19880fc4f6a7aa5f0501f0c051058480384f640 100644 (file)
@@ -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;
 }
 \f