diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-08-20 23:57:54 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-08-20 23:57:54 +0200 |
commit | 8ffa76b6e9af0df8531278f15aa6301b1b5ba76f (patch) | |
tree | f92ec015d60f3163445f1be2335a9ed94d1d0543 /sysdeps | |
parent | 42889b484ae0cae466a63e13e25a117094732e75 (diff) |
Fix raise thread-aware implementation
* sysdeps/generic/raise.c (pthread_kill): Make ref weak.
(raise): Only call pthread_kill when it is not NULL. Call kill otherwise.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/raise.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sysdeps/generic/raise.c b/sysdeps/generic/raise.c index 7514d3b..3c21233 100644 --- a/sysdeps/generic/raise.c +++ b/sysdeps/generic/raise.c @@ -20,6 +20,7 @@ #include <pthread.h> +#pragma weak pthread_kill int raise (int signo) { @@ -27,7 +28,11 @@ raise (int signo) "the effect of the raise() function shall be equivalent to calling: pthread_kill(pthread_self(), sig);" */ - int err = pthread_kill (pthread_self (), signo); + int err; + if (pthread_kill) + err = pthread_kill (pthread_self (), signo); + else + err = __kill (__getpid (), signo); if (err) { errno = err; |