redesign sigsetjmp so that signal mask is restored after longjmp
[musl] / src / signal / sigsetjmp_tail.c
1 #include <setjmp.h>
2 #include <signal.h>
3 #include "syscall.h"
4
5 #ifdef SHARED
6 __attribute__((__visibility__("hidden")))
7 #endif
8 int __sigsetjmp_tail(sigjmp_buf jb, int ret)
9 {
10         void *p = jb->__ss;
11         __syscall(SYS_rt_sigprocmask, SIG_SETMASK, ret?p:0, ret?0:p, _NSIG/8);
12         return ret;
13 }