mirror of https://git.musl-libc.org/git/musl
Browse Source
POSIX allows either behavior, but sigwait is not allowed to fail with EINTR, so the retry loop would have to be in one or the other anyway.rs-1.0
1 changed files with 6 additions and 6 deletions
@ -1,12 +1,12 @@ |
|||
#include <signal.h> |
|||
#include <errno.h> |
|||
#include "syscall.h" |
|||
|
|||
int sigtimedwait(const sigset_t *mask, siginfo_t *si, const struct timespec *timeout) |
|||
{ |
|||
long k_timeout[2]; |
|||
if (timeout) { |
|||
k_timeout[0] = timeout->tv_sec; |
|||
k_timeout[1] = timeout->tv_nsec; |
|||
} |
|||
return syscall4(__NR_rt_sigtimedwait, (long)mask, (long)si, timeout ? (long)k_timeout : 0, SYSCALL_SIGSET_SIZE); |
|||
int ret; |
|||
do { |
|||
ret = syscall4(__NR_rt_sigtimedwait, (long)mask, (long)si, (long)timeout, SYSCALL_SIGSET_SIZE); |
|||
} while (ret<0 && errno==EINTR); |
|||
return ret; |
|||
} |
|||
|
|||
Loading…
Reference in new issue