The wait_process() call now handles EINTR.
authorWayne Davison <wayned@samba.org>
Wed, 6 Dec 2006 17:21:59 +0000 (17:21 +0000)
committerWayne Davison <wayned@samba.org>
Wed, 6 Dec 2006 17:21:59 +0000 (17:21 +0000)
main.c

diff --git a/main.c b/main.c
index 0733a9a..e2d6aa7 100644 (file)
--- a/main.c
+++ b/main.c
@@ -103,7 +103,11 @@ static void show_malloc_stats(void);
  * remember_children(), we succeed instead of returning an error. */
 pid_t wait_process(pid_t pid, int *status_ptr, int flags)
 {
-       pid_t waited_pid = waitpid(pid, status_ptr, flags);
+       pid_t waited_pid;
+       
+       do {
+               waited_pid = waitpid(pid, status_ptr, flags);
+       } while (waited_pid == -1 && errno == EINTR);
 
        if (waited_pid == -1 && errno == ECHILD) {
                /* Status of requested child no longer available:  check to