aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstddjb/wait_nointr.c
blob: 6b7d6069e093aaf019c741da04e046b8e2c45e4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* ISC license. */

#include <sys/wait.h>
#include <errno.h>

#include <skalibs/djbunix.h>

pid_t wait_nointr (int *wstat)
{
  int e = errno ;
  pid_t r ;
  do r = wait(wstat) ;
  while (r == (pid_t)-1 && errno == EINTR) ;
  if (r >= 0) errno = e ;
  return r ;
}