From 1d670b00843948c8e23ef7020e08a91852798c6d Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 25 Jan 2012 19:57:42 +0000 Subject: [PATCH] -do not abort waitpid just because of SIGCHLD --- src/util/os_priority.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/util/os_priority.c b/src/util/os_priority.c index b344cd862..f9683bd81 100644 --- a/src/util/os_priority.c +++ b/src/util/os_priority.c @@ -1399,9 +1399,15 @@ GNUNET_OS_process_wait (struct GNUNET_OS_Process *proc) #ifndef MINGW pid_t pid = proc->pid; + pid_t ret; - if (pid != waitpid (pid, NULL, 0)) + while ( (pid != (ret = waitpid (pid, NULL, 0))) && + (EINTR == errno) ) ; + if (pid != ret) + { + LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "waitpid"); return GNUNET_SYSERR; + } return GNUNET_OK; #else HANDLE h; -- 2.25.1