summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-10-10 12:56:27 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-10-10 12:56:27 +0200
commitdc28c9c42afb66c751c894ab923917e9bda93adc (patch)
treeb76d72f8e622d9bbbdb7b2b4543a907949edacc0
parent8dbe53c35395c82514475a94a3c7353a9aaf2651 (diff)
Fix errno set by raise
* sysdeps/generic/raise.c: Include <signal.h> and <unistd.h>. (raise): Only set errno when calling pthread_kill, not kill.
-rw-r--r--sysdeps/generic/raise.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/sysdeps/generic/raise.c b/sysdeps/generic/raise.c
index 15348ce..3c497da 100644
--- a/sysdeps/generic/raise.c
+++ b/sysdeps/generic/raise.c
@@ -19,6 +19,8 @@
<http://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <signal.h>
+#include <unistd.h>
#pragma weak pthread_kill
#pragma weak pthread_self
@@ -29,17 +31,18 @@ raise (int signo)
"the effect of the raise() function shall be equivalent to
calling: pthread_kill(pthread_self(), sig);" */
- int err;
if (pthread_kill)
- err = pthread_kill (pthread_self (), signo);
- else
- err = __kill (__getpid (), signo);
- if (err)
{
- errno = err;
- return -1;
+ int err;
+ err = pthread_kill (pthread_self (), signo);
+ if (err)
+ {
+ errno = err;
+ return -1;
+ }
+ return 0;
}
-
- return 0;
+ else
+ return __kill (__getpid (), signo);
}