diff options
| author | Markos Chandras <markos.chandras@imgtec.com> | 2013-01-15 13:47:31 +0000 | 
|---|---|---|
| committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2013-02-27 22:16:12 +0100 | 
| commit | 49d3f93362c7eb359f82a4d9204a0519f73f3820 (patch) | |
| tree | c902e28c3c05dc872ecfee47ba509248d4c68bd2 | |
| parent | 79cd5fb435d910233b1eb03c93c6ae05908ab42b (diff) | |
libc/pause: Enable pause_nocancel for arches without __NR_pause
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
| -rw-r--r-- | libc/sysdeps/linux/common/not-cancel.h | 6 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/pause.c | 4 | 
2 files changed, 6 insertions, 4 deletions
diff --git a/libc/sysdeps/linux/common/not-cancel.h b/libc/sysdeps/linux/common/not-cancel.h index 08dab8c9d..acf8e39e8 100644 --- a/libc/sysdeps/linux/common/not-cancel.h +++ b/libc/sysdeps/linux/common/not-cancel.h @@ -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.  */ diff --git a/libc/sysdeps/linux/common/pause.c b/libc/sysdeps/linux/common/pause.c index 32fe839c0..c35ecd5d5 100644 --- a/libc/sysdeps/linux/common/pause.c +++ b/libc/sysdeps/linux/common/pause.c @@ -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  | 
