From d3b81557ecfbb8b08fba7fdab11af932d89b47b4 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Thu, 21 Apr 2011 23:09:39 +0200 Subject: nanosleep.c: use cancel.h Signed-off-by: Peter S. Mazinger Signed-off-by: Bernhard Reutner-Fischer --- libc/sysdeps/linux/common/nanosleep.c | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) (limited to 'libc') diff --git a/libc/sysdeps/linux/common/nanosleep.c b/libc/sysdeps/linux/common/nanosleep.c index 1e692bbf0..dd3f4dd14 100644 --- a/libc/sysdeps/linux/common/nanosleep.c +++ b/libc/sysdeps/linux/common/nanosleep.c @@ -9,32 +9,13 @@ #include #include +#include -#ifdef __UCLIBC_HAS_THREADS_NATIVE__ -#include -#include -#else -#define SINGLE_THREAD_P 1 -#endif - -#define __NR___syscall_nanosleep __NR_nanosleep -static _syscall2(int, __syscall_nanosleep, const struct timespec *, req, +#define __NR___nanosleep_nocancel __NR_nanosleep +static _syscall2(int, __NC(nanosleep), const struct timespec *, req, struct timespec *, rem); -extern __typeof(nanosleep) __libc_nanosleep; - -int __libc_nanosleep(const struct timespec *req, struct timespec *rem) -{ - if (SINGLE_THREAD_P) - return __syscall_nanosleep(req, rem); - -#ifdef __UCLIBC_HAS_THREADS_NATIVE__ - int oldtype = LIBC_CANCEL_ASYNC (); - int result = __syscall_nanosleep(req, rem); - LIBC_CANCEL_RESET (oldtype); - return result; -#endif -} - -weak_alias(__libc_nanosleep,nanosleep) -libc_hidden_weak(nanosleep) +CANCELLABLE_SYSCALL(int, nanosleep, + (const struct timespec *req, struct timespec *rem), + (req, rem)) +lt_libc_hidden(nanosleep) -- cgit v1.2.3