-GArik: fix typo
[oweals/gnunet.git] / src / util / os_priority.c
index b344cd86235eab02db3e0a8ad34e7f95fa35fce8..b1cf2fbff0c1794466c25b6e7174b71d1e685ca1 100644 (file)
@@ -305,7 +305,7 @@ extern GNUNET_SIGNAL_Handler w32_sigchld_handler;
  * @param proc pointer to process structure
  */
 static DWORD_WINAPI
-ChildWaitThread (void *arg)
+child_wait_thread (void *arg)
 {
   struct GNUNET_OS_Process *proc = (struct GNUNET_OS_Process *) arg;
 
@@ -788,7 +788,7 @@ GNUNET_OS_start_process_vap (struct GNUNET_DISK_PipeHandle *pipe_stdin,
   gnunet_proc->handle = proc.hProcess;
   gnunet_proc->control_pipe = control_pipe;
 
-  CreateThread (NULL, 64000, ChildWaitThread, (void *) gnunet_proc, 0, NULL);
+  CreateThread (NULL, 64000, &child_wait_thread, (void *) gnunet_proc, 0, NULL);
 
   ResumeThread (proc.hThread);
   CloseHandle (proc.hThread);
@@ -1199,7 +1199,7 @@ GNUNET_OS_start_process_v (const SOCKTYPE *lsocks,
   gnunet_proc->handle = proc.hProcess;
   gnunet_proc->control_pipe = control_pipe;
 
-  CreateThread (NULL, 64000, ChildWaitThread, (void *) gnunet_proc, 0, NULL);
+  CreateThread (NULL, 64000, &child_wait_thread, (void *) gnunet_proc, 0, NULL);
 
   ResumeThread (proc.hThread);
   CloseHandle (proc.hThread);
@@ -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;