changeset 76462:deede4f7067d

tweak last patch: add comment and avoid the first sleep
author Sam Steingold <sds@gnu.org>
date Sun, 11 Mar 2007 21:08:45 +0000
parents 1192779764c1
children 63e4cb93803a
files src/process.c
diffstat 1 files changed, 10 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/process.c	Sun Mar 11 20:13:23 2007 +0000
+++ b/src/process.c	Sun Mar 11 21:08:45 2007 +0000
@@ -6495,13 +6495,16 @@
 #define WUNTRACED 0
 #endif /* no WUNTRACED */
       /* Keep trying to get a status until we get a definitive result.  */
-      do
-	{
-          sleep (1);
-	  errno = 0;
-	  pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
-	}
-      while (pid < 0 && errno == EINTR);
+      while (1) {
+        errno = 0;
+        pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
+	if (! (pid < 0 && errno == EINTR))
+          break;
+        /* avoid a busyloop: wait3 is a system call, so we do not want
+           to prevent the kernel from actually sending SIGCHLD to emacs
+           by asking for it all the time */
+        sleep (1);
+      }
 
       if (pid <= 0)
 	{