]> git.sur5r.net Git - openldap/commitdiff
Trying again:
authorHallvard Furuseth <hallvard@openldap.org>
Fri, 2 Apr 1999 04:12:18 +0000 (04:12 +0000)
committerHallvard Furuseth <hallvard@openldap.org>
Fri, 2 Apr 1999 04:12:18 +0000 (04:12 +0000)
Fix wait4child change: Prefer wait3 over wait. Use SIGNAL instead of signal.

servers/slapd/main.c

index 6c06c02799e950f3beaea6b943026b6eadfd3d02..c37b0031b7461d15e4fe03951cc50705dd5d09e9 100644 (file)
@@ -312,23 +312,19 @@ static RETSIGTYPE
 wait4child( int sig )
 {
     int save_errno = errno;
+
+#ifdef WNOHANG
     errno = 0;
-    /*
-     * ### The wait3 vs. waitpid choice needs improvement.
-     * ### There are apparently systems where waitpid(-1, ...) fails, and
-     * ### others where waitpid should preferred over wait3 for some reason.
-     * ### Now wait3 is only here for reference, configure does not detect it.
-     */
-#if defined(HAVE_WAITPID) && defined(WNOHANG)
+#ifdef HAVE_WAITPID
     while ( waitpid( (pid_t)-1, NULL, WNOHANG ) >= 0 || errno == EINTR )
        ;       /* NULL */
-#elif defined(HAVE_WAIT3) && defined(WNOHANG)
+#else
     while ( wait3( NULL, WNOHANG, NULL ) >= 0 || errno == EINTR )
        ;       /* NULL */
-#else
+#endif
     (void) wait( NULL );
 #endif
-    (void) signal( sig, wait4child );
+    (void) SIGNAL( sig, wait4child );
     errno = save_errno;
 }