summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2007-05-02 08:03:22 +0000
committerMike Frysinger <vapier@gentoo.org>2007-05-02 08:03:22 +0000
commitae0badd7421c76b6e5820e80a2ab3c56786dff18 (patch)
tree5409c9fd60916a0e5f8c1fbc26d1ac6c1d82fe15
parentf2c7b3709620eb2b36e956f77ffa5e10a50f285c (diff)
Daniel Jacobowitz: sleep()/usleep() relies on nanosleep() being a cancellation
point but the files have "libc_hidden_proto(nanosleep)" which means it always calls the libc.so version, never the wrapped version in libpthread.so that's a cancellation point.
-rw-r--r--libc/unistd/sleep.c2
-rw-r--r--libc/unistd/usleep.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/libc/unistd/sleep.c b/libc/unistd/sleep.c
index 92944af18..4381c45c7 100644
--- a/libc/unistd/sleep.c
+++ b/libc/unistd/sleep.c
@@ -30,7 +30,7 @@ libc_hidden_proto(sigprocmask)
//libc_hidden_proto(__sigaddset)
//libc_hidden_proto(__sigemptyset)
//libc_hidden_proto(__sigismember)
-libc_hidden_proto(nanosleep)
+/*libc_hidden_proto(nanosleep) need the reloc for cancellation*/
#if 0
/* This is a quick and dirty, but not 100% compliant with
diff --git a/libc/unistd/usleep.c b/libc/unistd/usleep.c
index 09bb09f41..91b88278d 100644
--- a/libc/unistd/usleep.c
+++ b/libc/unistd/usleep.c
@@ -9,7 +9,7 @@
#include <sys/types.h>
#include <unistd.h>
-libc_hidden_proto(nanosleep)
+/*libc_hidden_proto(nanosleep) need the reloc for cancellation*/
int usleep (__useconds_t usec)
{