diff options
Diffstat (limited to 'libpthread/nptl/pthread_cancel.c')
-rw-r--r-- | libpthread/nptl/pthread_cancel.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libpthread/nptl/pthread_cancel.c b/libpthread/nptl/pthread_cancel.c index ee9a3202f..d3fd140e8 100644 --- a/libpthread/nptl/pthread_cancel.c +++ b/libpthread/nptl/pthread_cancel.c @@ -21,6 +21,7 @@ #include "pthreadP.h" #include "atomic.h" #include <sysdep.h> +#include <unistd.h> #include <bits/kernel-features.h> @@ -74,10 +75,9 @@ pthread_cancel ( the thread is executing fork, it would have to happen in a signal handler. But this is no allowed, pthread_cancel is not guaranteed to be async-safe. */ + pid_t pid = getpid (); int val; - val = INTERNAL_SYSCALL (tgkill, err, 3, - THREAD_GETMEM (THREAD_SELF, pid), pd->tid, - SIGCANCEL); + val = INTERNAL_SYSCALL (tgkill, err, 3, pid, pd->tid, SIGCANCEL); if (INTERNAL_SYSCALL_ERROR_P (val, err)) result = INTERNAL_SYSCALL_ERRNO (val, err); |