OSDN Git Service

libc/pause: Enable pause_nocancel for arches without __NR_pause
authorMarkos Chandras <markos.chandras@imgtec.com>
Tue, 15 Jan 2013 13:47:31 +0000 (13:47 +0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Wed, 27 Feb 2013 21:16:12 +0000 (22:16 +0100)
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
libc/sysdeps/linux/common/not-cancel.h
libc/sysdeps/linux/common/pause.c

index 08dab8c..acf8e39 100644 (file)
@@ -102,9 +102,11 @@ extern int __openat64_nocancel (int fd, const char *fname, int oflag,
 #ifdef __NR_pause
 # define pause_not_cancel() \
   INLINE_SYSCALL (pause, 0)
-/*#else
+#else
+# include <unistd.h>
+extern __typeof(pause) __pause_nocancel;
 # define pause_not_cancel() \
-  __pause_nocancel ()*/
+  __pause_nocancel ()
 #endif
 
 /* Uncancelable nanosleep.  */
index 32fe839..c35ecd5 100644 (file)
@@ -25,7 +25,7 @@ int
 # ifdef __LINUXTHREADS_OLD__
 weak_function
 # endif
-pause(void)
+__NC(pause)(void)
 {
        sigset_t set;
 
@@ -36,6 +36,6 @@ pause(void)
           So no need for anything special here.  */
        return sigsuspend(&set);
 }
-lt_strong_alias(pause)
+CANCELLABLE_SYSCALL(int, pause, (void), ())
 LIBC_CANCEL_HANDLED ();                /* sigsuspend handles our cancellation.  */
 #endif