X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fsignal%2Fraise.c;h=71e0505b0f598d1c3184e3f38cd78d57204a05ad;hb=f42bad9ccb2af7cde8a676d57c4d161455256456;hp=cc2b19b755df641e4e2a4b4aa30e88339efb166c;hpb=0bed7e0acfd34e3fb63ca0e4d99b7592571355a9;p=musl diff --git a/src/signal/raise.c b/src/signal/raise.c index cc2b19b7..71e0505b 100644 --- a/src/signal/raise.c +++ b/src/signal/raise.c @@ -1,18 +1,16 @@ #include #include +#include #include "syscall.h" -int __sigprocmask(int, const sigset_t *, sigset_t *); - int raise(int sig) { int pid, tid, ret; sigset_t set; - sigfillset(&set); - __sigprocmask(SIG_BLOCK, &set, &set); - tid = syscall0(__NR_gettid); - pid = syscall0(__NR_getpid); - ret = syscall3(__NR_tgkill, pid, tid, sig); - __sigprocmask(SIG_SETMASK, &set, 0); + __syscall(SYS_rt_sigprocmask, SIG_BLOCK, (uint64_t[]){-1}, &set, 8); + tid = syscall(SYS_gettid); + pid = syscall(SYS_getpid); + ret = syscall(SYS_tgkill, pid, tid, sig); + __syscall(SYS_rt_sigprocmask, SIG_SETMASK, &set, 0, 8); return ret; }