-#define SYSCALL_RETURN_ERRNO
#include "pthread_impl.h"
int pthread_kill(pthread_t t, int sig)
{
- return syscall3(__NR_tgkill, t->pid, t->tid, sig);
+ int r;
+ __lock(t->killlock);
+ r = t->dead ? ESRCH : -__syscall(SYS_tgkill, t->pid, t->tid, sig);
+ __unlock(t->killlock);
+ return r;
}