Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2021-11-22 14:35:39 +0300
committerCorinna Vinschen <corinna@vinschen.de>2021-11-22 14:37:12 +0300
commitafb7c557d2af10cdcb16c7edcc9d16224995b9e0 (patch)
tree6de80f799c79685fa8b8a56680a079a6dd0e5913
parent24bffff63eb798d721b75b1c38c18f1687d33a2a (diff)
Cygwin: raise: align return value and error checking to Linux
raise(2) on Linux returns the same values and sets errno independent of calling kill(2) or pthread_kill(3). Align code to behave the same. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/signal.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index f4b468664..2cf750f5c 100644
--- a/winsup/cygwin/signal.cc
+++ b/winsup/cygwin/signal.cc
@@ -303,7 +303,12 @@ raise (int sig)
pthread *thread = _my_tls.tid;
if (!thread || !__isthreaded)
return kill (myself->pid, sig);
- return pthread_kill (thread, sig);
+
+ /* Make sure to return -1 and set errno, as on Linux. */
+ int err = pthread_kill (thread, sig);
+ if (err)
+ set_errno (err);
+ return err ? -1 : 0;
}
static int