(root)/
gcc-13.2.0/
libiberty/
waitpid.c
       1  /*
       2  
       3  @deftypefn Supplemental int waitpid (int @var{pid}, int *@var{status}, int)
       4  
       5  This is a wrapper around the @code{wait} function.  Any ``special''
       6  values of @var{pid} depend on your implementation of @code{wait}, as
       7  does the return value.  The third argument is unused in @libib{}.
       8  
       9  @end deftypefn
      10  
      11  */
      12  
      13  #ifdef HAVE_CONFIG_H
      14  #include "config.h"
      15  #endif
      16  #include "ansidecl.h"
      17  
      18  /* On some systems (such as WindISS), you must include <sys/types.h>
      19     to get the definition of "pid_t" before you include <sys/wait.h>.  */
      20  #include <sys/types.h>
      21  
      22  #ifdef HAVE_SYS_WAIT_H
      23  #include <sys/wait.h>
      24  #endif
      25  
      26  #ifdef __MINGW32__
      27  #include <process.h>
      28  #define wait(s)  _cwait(s,pid,_WAIT_CHILD)
      29  #endif
      30  
      31  pid_t
      32  waitpid (pid_t pid, int *stat_loc, int options ATTRIBUTE_UNUSED)
      33  {
      34    for (;;)
      35      {
      36        int wpid = wait(stat_loc);
      37        if (wpid == pid || wpid == -1)
      38  	return wpid;
      39      }
      40  }