summaryrefslogtreecommitdiff
path: root/src/signal
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-03-10 10:59:50 -0500
committerRich Felker <dalias@aerifal.cx>2011-03-10 10:59:50 -0500
commit5b9429adb78aeb5e98fa26bd9b2b3eef981e4c52 (patch)
treed4d2ff17e96dc00bc84ae1da8004509a74b1d5d8 /src/signal
parent0a949ebdf0b9fc054ea868bd049c8f2c7aed973e (diff)
downloadmusl-5b9429adb78aeb5e98fa26bd9b2b3eef981e4c52.tar.gz
musl-5b9429adb78aeb5e98fa26bd9b2b3eef981e4c52.tar.bz2
musl-5b9429adb78aeb5e98fa26bd9b2b3eef981e4c52.tar.xz
musl-5b9429adb78aeb5e98fa26bd9b2b3eef981e4c52.zip
make sigtimedwait a cancellation point
Diffstat (limited to 'src/signal')
-rw-r--r--src/signal/sigtimedwait.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/signal/sigtimedwait.c b/src/signal/sigtimedwait.c
index 0a7c5eac..93f31a71 100644
--- a/src/signal/sigtimedwait.c
+++ b/src/signal/sigtimedwait.c
@@ -1,12 +1,15 @@
#include <signal.h>
#include <errno.h>
#include "syscall.h"
+#include "libc.h"
int sigtimedwait(const sigset_t *mask, siginfo_t *si, const struct timespec *timeout)
{
int ret;
+ CANCELPT_BEGIN;
do {
ret = syscall4(__NR_rt_sigtimedwait, (long)mask, (long)si, (long)timeout, SYSCALL_SIGSET_SIZE);
} while (ret<0 && errno==EINTR);
+ CANCELPT_END;
return ret;
}