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: Kim F. Storm
Subject: [Emacs-diffs] Changes to emacs/src/process.c,v
Date: Thu, 29 Mar 2007 21:24:39 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Kim F. Storm <kfstorm>  07/03/29 21:24:38

Index: process.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/process.c,v
retrieving revision 1.509
retrieving revision 1.510
diff -u -b -r1.509 -r1.510
--- process.c   29 Mar 2007 13:55:48 -0000      1.509
+++ process.c   29 Mar 2007 21:24:38 -0000      1.510
@@ -4829,10 +4829,16 @@
                 get a SIGCHLD).
 
                 However, it has been known to happen that the SIGCHLD
-                got lost.  So raise the signl again just in case.
+                got lost.  So raise the signal again just in case.
                 It can't hurt.  */
              else if (nread == -1 && errno == EIO)
+               {
+                 /* Clear the descriptor now, so we only raise the signal 
once.  */
+                 FD_CLR (channel, &input_wait_mask);
+                 FD_CLR (channel, &non_keyboard_wait_mask);
+
                kill (getpid (), SIGCHLD);
+               }
 #endif                         /* HAVE_PTYS */
              /* If we can detect process termination, don't consider the 
process
                 gone just because its pipe is closed.  */
@@ -6514,11 +6520,6 @@
       /* Keep trying to get a status until we get a definitive result.  */
       do
         {
-         /* For some reason, this sleep() prevents Emacs from sending
-             loadavg to 5-8(!) for ~10 seconds.
-             See http://thread.gmane.org/gmane.emacs.devel/67722 or
-             http://www.google.com/search?q=busyloop+in+sigchld_handler */
-          usleep (1000);
          errno = 0;
          pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
        }




reply via email to

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