diff options
| -rw-r--r-- | libc/sysdeps/linux/common/wait.c | 38 | 
1 files changed, 4 insertions, 34 deletions
| diff --git a/libc/sysdeps/linux/common/wait.c b/libc/sysdeps/linux/common/wait.c index 9b529eb21..df4005839 100644 --- a/libc/sysdeps/linux/common/wait.c +++ b/libc/sysdeps/linux/common/wait.c @@ -4,41 +4,11 @@   *   * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.   */ -#include <stdlib.h> -#include <syscall.h> -#include <sys/types.h>  #include <sys/wait.h> -#include <sys/resource.h> +#include <cancel.h> -extern __typeof(wait) __libc_wait; -/* Wait for a child to die.  When one does, put its status in *STAT_LOC - * and return its process ID.  For errors, return (pid_t) -1.  */ -#ifdef __UCLIBC_HAS_THREADS_NATIVE__ -#include <errno.h> -#include <sysdep-cancel.h> - -pid_t attribute_hidden -__libc_wait (__WAIT_STATUS_DEFN stat_loc) -{ -  if (SINGLE_THREAD_P) -    return INLINE_SYSCALL (wait4, 4, WAIT_ANY, stat_loc, 0, -			   (struct rusage *) NULL); - -  int oldtype = LIBC_CANCEL_ASYNC (); - -  pid_t result = INLINE_SYSCALL (wait4, 4, WAIT_ANY, stat_loc, 0, -				 (struct rusage *) NULL); - -  LIBC_CANCEL_RESET (oldtype); - -  return result; -} -#else -/* Wait for a child to die.  When one does, put its status in *STAT_LOC - * and return its process ID.  For errors, return (pid_t) -1.  */ -__pid_t __libc_wait (__WAIT_STATUS_DEFN stat_loc) +static pid_t __NC(wait)(__WAIT_STATUS_DEFN stat_loc)  { -      return wait4 (WAIT_ANY, stat_loc, 0, (struct rusage *) NULL); +	return __wait4_nocancel(WAIT_ANY, stat_loc, 0, (struct rusage *)NULL);  } -#endif -weak_alias(__libc_wait,wait) +CANCELLABLE_SYSCALL(pid_t, wait, (__WAIT_STATUS_DEFN stat_loc), (stat_loc)) | 
