86a2c879df751b13027683749af7a9657aa30ce4
[musl] / src / signal / sigtimedwait.c
1 #include <signal.h>
2 #include <errno.h>
3 #include "syscall.h"
4 #include "libc.h"
5
6 int sigtimedwait(const sigset_t *mask, siginfo_t *si, const struct timespec *timeout)
7 {
8         int ret;
9         CANCELPT_BEGIN;
10         do {
11                 ret = syscall(__NR_rt_sigtimedwait, mask, si, timeout, 8);
12                 if (ret<0) CANCELPT_TRY;
13         } while (ret<0 && errno==EINTR);
14         CANCELPT_END;
15         return ret;
16 }