From 62c208d68fb07d85e42780394576b6b40aae7d53 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Sat, 23 Apr 2011 20:46:59 +0200 Subject: pause.c: add back usage of pause syscall No idea why it was removed when NPTL was added, but glibc uses it as well. Signed-off-by: Peter S. Mazinger Signed-off-by: Bernhard Reutner-Fischer --- libc/sysdeps/linux/common/pause.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'libc') diff --git a/libc/sysdeps/linux/common/pause.c b/libc/sysdeps/linux/common/pause.c index 8a4d82177..32fe839c0 100644 --- a/libc/sysdeps/linux/common/pause.c +++ b/libc/sysdeps/linux/common/pause.c @@ -7,16 +7,24 @@ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ -#define __need_NULL -#include +#include #include -#include #include +#ifdef __NR_pause +/* even if it is not obvious, glibc uses the pause syscall, see syscalls.list */ +# define __NR___pause_nocancel __NR_pause +static _syscall0(int, __NC(pause)) +CANCELLABLE_SYSCALL(int, pause, (void), ()) +#else +# define __need_NULL +# include +# include + int -#ifdef __LINUXTHREADS_OLD__ +# ifdef __LINUXTHREADS_OLD__ weak_function -#endif +# endif pause(void) { sigset_t set; @@ -30,3 +38,4 @@ pause(void) } lt_strong_alias(pause) LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */ +#endif -- cgit v1.2.3