overhaul cancellation to fix resource leaks and dangerous behavior with signals
[musl] / src / signal / sigsuspend.c
index 6c13fce..9ee7124 100644 (file)
@@ -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;
 }