/* vi: set sw=4 ts=4: */ /* * Copyright (C) 2006 Steven J. Hill <sjhill@realitydiluted.com> * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> * * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ #include <stdlib.h> #include <sys/types.h> #include <sys/wait.h> #include <sys/resource.h> #ifdef __UCLIBC_HAS_THREADS_NATIVE__ #include "sysdep-cancel.h" #else #define SINGLE_THREAD_P 1 #endif libc_hidden_proto(wait4) extern __typeof(waitpid) __libc_waitpid; __pid_t __libc_waitpid(__pid_t pid, int *wait_stat, int options) { if (SINGLE_THREAD_P) return wait4(pid, wait_stat, options, NULL); #ifdef __UCLIBC_HAS_THREADS_NATIVE__ int oldtype = LIBC_CANCEL_ASYNC (); int result = wait4(pid, wait_stat, options, NULL); LIBC_CANCEL_RESET (oldtype); return result; #endif } libc_hidden_proto(waitpid) weak_alias(__libc_waitpid,waitpid) libc_hidden_weak(waitpid)