b24dc7417f46131ed8e8d687db75ac9487e85768
[musl] / src / signal / raise.c
1 #include <signal.h>
2 #include <errno.h>
3 #include <stdint.h>
4 #include "syscall.h"
5 #include "pthread_impl.h"
6
7 int raise(int sig)
8 {
9         int pid, tid, ret;
10         sigset_t set;
11         __syscall(SYS_rt_sigprocmask, SIG_BLOCK, SIGALL_SET, &set, _NSIG/8);
12         tid = __syscall(SYS_gettid);
13         pid = __syscall(SYS_getpid);
14         ret = syscall(SYS_tgkill, pid, tid, sig);
15         __syscall(SYS_rt_sigprocmask, SIG_SETMASK, &set, 0, _NSIG/8);
16         return ret;
17 }