| OLD | NEW |
| 1 #include <signal.h> | 1 #include <signal.h> |
| 2 #include <string.h> | 2 #include <string.h> |
| 3 #include <unistd.h> | 3 #include <unistd.h> |
| 4 #include "syscall.h" | 4 #include "syscall.h" |
| 5 #include "pthread_impl.h" | 5 #include "pthread_impl.h" |
| 6 | 6 |
| 7 int sigqueue(pid_t pid, int sig, const union sigval value) | 7 int sigqueue(pid_t pid, int sig, const union sigval value) { |
| 8 { | 8 siginfo_t si; |
| 9 » siginfo_t si; | 9 sigset_t set; |
| 10 » sigset_t set; | 10 int r; |
| 11 » int r; | 11 memset(&si, 0, sizeof si); |
| 12 » memset(&si, 0, sizeof si); | 12 si.si_signo = sig; |
| 13 » si.si_signo = sig; | 13 si.si_code = SI_QUEUE; |
| 14 » si.si_code = SI_QUEUE; | 14 si.si_value = value; |
| 15 » si.si_value = value; | 15 si.si_uid = getuid(); |
| 16 » si.si_uid = getuid(); | 16 __block_app_sigs(&set); |
| 17 » __block_app_sigs(&set); | 17 si.si_pid = getpid(); |
| 18 » si.si_pid = getpid(); | 18 r = syscall(SYS_rt_sigqueueinfo, pid, sig, &si); |
| 19 » r = syscall(SYS_rt_sigqueueinfo, pid, sig, &si); | 19 __restore_sigs(&set); |
| 20 » __restore_sigs(&set); | 20 return r; |
| 21 » return r; | |
| 22 } | 21 } |
| OLD | NEW |