diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-10-10 12:56:27 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-10-10 12:56:27 +0200 |
commit | dc28c9c42afb66c751c894ab923917e9bda93adc (patch) | |
tree | b76d72f8e622d9bbbdb7b2b4543a907949edacc0 | |
parent | 8dbe53c35395c82514475a94a3c7353a9aaf2651 (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.c | 21 |
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); } |