diff options
Diffstat (limited to 'src/signal')
-rw-r--r-- | src/signal/sigsuspend.c | 1 | ||||
-rw-r--r-- | src/signal/sigtimedwait.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/src/signal/sigsuspend.c b/src/signal/sigsuspend.c index 6c13fce1..9ee71240 100644 --- a/src/signal/sigsuspend.c +++ b/src/signal/sigsuspend.c @@ -7,6 +7,7 @@ int sigsuspend(const sigset_t *mask) int ret; CANCELPT_BEGIN; ret = syscall(__NR_rt_sigsuspend, mask, 8); + if (ret<0) CANCELPT_TRY; CANCELPT_END; return ret; } diff --git a/src/signal/sigtimedwait.c b/src/signal/sigtimedwait.c index a0edaaf3..86a2c879 100644 --- a/src/signal/sigtimedwait.c +++ b/src/signal/sigtimedwait.c @@ -9,6 +9,7 @@ int sigtimedwait(const sigset_t *mask, siginfo_t *si, const struct timespec *tim CANCELPT_BEGIN; do { ret = syscall(__NR_rt_sigtimedwait, mask, si, timeout, 8); + if (ret<0) CANCELPT_TRY; } while (ret<0 && errno==EINTR); CANCELPT_END; return ret; |