diff options
Diffstat (limited to 'libc/sysdeps/linux')
-rw-r--r-- | libc/sysdeps/linux/common/pause.c | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/libc/sysdeps/linux/common/pause.c b/libc/sysdeps/linux/common/pause.c index a77c4d581..8a4d82177 100644 --- a/libc/sysdeps/linux/common/pause.c +++ b/libc/sysdeps/linux/common/pause.c @@ -10,32 +10,23 @@ #define __need_NULL #include <stddef.h> #include <unistd.h> - -#ifdef __UCLIBC_HAS_THREADS_NATIVE__ -#include <sysdep-cancel.h> -#endif - #include <signal.h> +#include <cancel.h> -/* Suspend the process until a signal arrives. - This always returns -1 and sets errno to EINTR. */ -extern __typeof(pause) __libc_pause; int -__libc_pause (void) +#ifdef __LINUXTHREADS_OLD__ +weak_function +#endif +pause(void) { - sigset_t set; + sigset_t set; - /*__sigemptyset (&set); - why? */ - sigprocmask (SIG_BLOCK, NULL, &set); + /*__sigemptyset (&set); - why? */ + sigprocmask (SIG_BLOCK, NULL, &set); - /* pause is a cancellation point, but so is sigsuspend. - So no need for anything special here. */ - - return sigsuspend (&set); + /* pause is a cancellation point, but so is sigsuspend. + So no need for anything special here. */ + return sigsuspend(&set); } -weak_alias (__libc_pause, pause) - -#ifdef __UCLIBC_HAS_THREADS_NATIVE__ +lt_strong_alias(pause) LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */ -#endif - |