* src/process.c (start_process_unwind): Treat any pid <= 0, except -2,
authorGlenn Morris <rgm@gnu.org>
Tue, 6 Dec 2011 08:17:35 +0000 (00:17 -0800)
committerGlenn Morris <rgm@gnu.org>
Tue, 6 Dec 2011 08:17:35 +0000 (00:17 -0800)
as an error, not just -1.
For example, make_process inits the pid to 0.

Fixes: debbugs:10217

src/ChangeLog
src/process.c

index e22d6cb..30a504c 100644 (file)
@@ -1,3 +1,8 @@
+2011-12-06  Glenn Morris  <rgm@gnu.org>
+
+       * process.c (start_process_unwind): Treat any pid <= 0, except -2,
+       as an error, not just -1.  (Bug#10217)
+
 2011-12-05  Chong Yidong  <cyd@gnu.org>
 
        * keyboard.c (process_special_events): New function.
index 05c4be2..4b0f90b 100644 (file)
@@ -1521,8 +1521,9 @@ start_process_unwind (Lisp_Object proc)
   if (!PROCESSP (proc))
     abort ();
 
-  /* Was PROC started successfully?  */
-  if (XPROCESS (proc)->pid == -1)
+  /* Was PROC started successfully?
+     -2 is used for a pty with no process, eg for gdb.  */
+  if (XPROCESS (proc)->pid <= 0 && XPROCESS (proc)->pid != -2)
     remove_process (proc);
 
   return Qnil;