diff options
Diffstat (limited to 'libc/sysdeps/linux/common')
| -rw-r--r-- | libc/sysdeps/linux/common/nanosleep.c | 33 | 
1 files changed, 7 insertions, 26 deletions
| 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 <sys/syscall.h>  #include <time.h> +#include <cancel.h> -#ifdef __UCLIBC_HAS_THREADS_NATIVE__ -#include <sysdep-cancel.h> -#include <pthreadP.h> -#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) | 
