summaryrefslogtreecommitdiff
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-09-01 00:43:05 +0200
commitc21c653bea37117ed8b263d7714ad8b3f8b37a76 (patch)
treeb0d7f05a5364fd240f4eb83053215b9060956579
parent0a020aad03f7fd30e7ad1c830507bad6dd775a07 (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.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;