diff options
author | Khem Raj <kraj@mvista.com> | 2008-07-11 07:59:33 +0000 |
---|---|---|
committer | Khem Raj <kraj@mvista.com> | 2008-07-11 07:59:33 +0000 |
commit | 8b8e6c52edc6baefa70abac71e6e4d637e188698 (patch) | |
tree | 5be81c32de5e642991ac92943aa3ab5660dfd0fe | |
parent | c73fd216d38328cfedd919d0f2b6c6254bc0bf1a (diff) | |
download | uClibc-alpine-8b8e6c52edc6baefa70abac71e6e4d637e188698.tar.bz2 uClibc-alpine-8b8e6c52edc6baefa70abac71e6e4d637e188698.tar.xz |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Use wait4 for waitpid syscall.
-rw-r--r-- | libc/sysdeps/linux/common/waitpid.c | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/libc/sysdeps/linux/common/waitpid.c b/libc/sysdeps/linux/common/waitpid.c index 902a39496..d0437194d 100644 --- a/libc/sysdeps/linux/common/waitpid.c +++ b/libc/sysdeps/linux/common/waitpid.c @@ -10,43 +10,28 @@ #include <sys/types.h> #include <sys/wait.h> #include <sys/resource.h> + #ifdef __UCLIBC_HAS_THREADS_NATIVE__ -#include <errno.h> -#include <sysdep-cancel.h> +#include "sysdep-cancel.h" #else +#define SINGLE_THREAD_P 1 +#endif libc_hidden_proto(wait4) -#endif extern __typeof(waitpid) __libc_waitpid; __pid_t __libc_waitpid(__pid_t pid, int *wait_stat, int options) { -#ifdef __UCLIBC_HAS_THREADS_NATIVE__ if (SINGLE_THREAD_P) - { -#ifdef __NR_waitpid - return INLINE_SYSCALL (waitpid, 3, pid, wait_stat, options); -#else - return INLINE_SYSCALL (wait4, 4, pid, wait_stat, options, NULL); -#endif - } + return wait4(pid, wait_stat, options, NULL); +#ifdef __UCLIBC_HAS_THREADS_NATIVE__ int oldtype = LIBC_CANCEL_ASYNC (); - -#ifdef __NR_waitpid - int result = INLINE_SYSCALL (waitpid, 3, pid, wait_stat, options); -#else - int result = INLINE_SYSCALL (wait4, 4, pid, wait_stat, options, NULL); -#endif - + int result = wait4(pid, wait_stat, options, NULL); LIBC_CANCEL_RESET (oldtype); - return result; -} -#else - return wait4(pid, wait_stat, options, NULL); -} #endif +} libc_hidden_proto(waitpid) weak_alias(__libc_waitpid,waitpid) libc_hidden_weak(waitpid) |