emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/process.c,v


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/src/process.c,v
Date: Sat, 17 Mar 2007 18:16:03 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      07/03/17 18:16:03

Index: process.c
===================================================================
RCS file: /sources/emacs/emacs/src/process.c,v
retrieving revision 1.502
retrieving revision 1.503
diff -u -b -r1.502 -r1.503
--- process.c   11 Mar 2007 21:08:45 -0000      1.502
+++ process.c   17 Mar 2007 18:16:03 -0000      1.503
@@ -6486,7 +6486,7 @@
 
   while (1)
     {
-      register EMACS_INT pid;
+      pid_t pid;
       WAITTYPE w;
       Lisp_Object tail;
 
@@ -6530,12 +6530,16 @@
       /* Find the process that signaled us, and record its status.  */
 
       /* The process can have been deleted by Fdelete_process.  */
-      tail = Fmember (make_fixnum_or_float (pid), deleted_pid_list);
-      if (!NILP (tail))
+      for (tail = deleted_pid_list; GC_CONSP (tail); tail = XCDR (tail))
        {
-         Fsetcar (tail, Qnil);
+         Lisp_Object xpid = XCAR (tail);
+         if ((GC_INTEGERP (xpid) && pid == (pid_t) XINT (xpid))
+             || (GC_FLOATP (xpid) && pid == (pid_t) XFLOAT_DATA (xpid)))
+           {
+             XSETCAR (tail, Qnil);
          goto sigchld_end_of_loop;
        }
+       }
 
       /* Otherwise, if it is asynchronous, it is in Vprocess_alist.  */
       p = 0;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]