[newlib-cygwin] Cygwin: raise: fix check for multithreaded process

Corinna Vinschen corinna@sourceware.org
Mon Nov 22 11:52:23 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=24bffff63eb798d721b75b1c38c18f1687d33a2a

commit 24bffff63eb798d721b75b1c38c18f1687d33a2a
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Mon Nov 22 12:33:47 2021 +0100

    Cygwin: raise: fix check for multithreaded process
    
    The check for the pthread self pointer in TLS is misleading,
    given the main thread has this pointer initialized as well.
    Check for the global __isthreaded flag as well.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/signal.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index bd1168e90..f4b468664 100644
--- a/winsup/cygwin/signal.cc
+++ b/winsup/cygwin/signal.cc
@@ -301,7 +301,7 @@ extern "C" int
 raise (int sig)
 {
   pthread *thread = _my_tls.tid;
-  if (!thread)
+  if (!thread || !__isthreaded)
     return kill (myself->pid, sig);
   return pthread_kill (thread, sig);
 }


More information about the Cygwin-cvs mailing list