Add tgkill syscall.
Use tgkill instead of tkill to implement pthread_kill. This is safer in the event that the thread has already terminated and its id has been reused by a different process. Change-Id: Ied715e11d7eadeceead79f33db5e2b5722954ac9
This commit is contained in:
@@ -1839,7 +1839,7 @@ static void pthread_key_clean_all(void)
|
||||
}
|
||||
|
||||
// man says this should be in <linux/unistd.h>, but it isn't
|
||||
extern int tkill(int tid, int sig);
|
||||
extern int tgkill(int tgid, int tid, int sig);
|
||||
|
||||
int pthread_kill(pthread_t tid, int sig)
|
||||
{
|
||||
@@ -1847,7 +1847,7 @@ int pthread_kill(pthread_t tid, int sig)
|
||||
int old_errno = errno;
|
||||
pthread_internal_t * thread = (pthread_internal_t *)tid;
|
||||
|
||||
ret = tkill(thread->kernel_id, sig);
|
||||
ret = tgkill(getpid(), thread->kernel_id, sig);
|
||||
if (ret < 0) {
|
||||
ret = errno;
|
||||
errno = old_errno;
|
||||
|
Reference in New Issue
Block a user