1 #include "pthread_impl.h" 2 #include "lock.h" 3 pthread_kill(pthread_t t,int sig)4int pthread_kill(pthread_t t, int sig) 5 { 6 int r; 7 sigset_t set; 8 /* Block not just app signals, but internal ones too, since 9 * pthread_kill is used to implement pthread_cancel, which 10 * must be async-cancel-safe. */ 11 __block_all_sigs(&set); 12 LOCK(t->killlock); 13 r = t->tid ? -__syscall(SYS_tkill, t->tid, sig) 14 : (sig+0U >= _NSIG ? EINVAL : 0); 15 UNLOCK(t->killlock); 16 __restore_sigs(&set); 17 return r; 18 } 19