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-09-01 00:43:05 +0200 |
commit | c21c653bea37117ed8b263d7714ad8b3f8b37a76 (patch) | |
tree | b0d7f05a5364fd240f4eb83053215b9060956579 | |
parent | 0a020aad03f7fd30e7ad1c830507bad6dd775a07 (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.
-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; |