summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-08-20 23:57:54 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-08-20 23:57:54 +0200
commit8ffa76b6e9af0df8531278f15aa6301b1b5ba76f (patch)
treef92ec015d60f3163445f1be2335a9ed94d1d0543 /sysdeps
parent42889b484ae0cae466a63e13e25a117094732e75 (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.c7
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;