[prev in list] [next in list] [prev in thread] [next in thread]
List: cygwin-patches
Subject: [PATCH] Cygwin: exceptions.cc: Suspend all threads in sig_handle_tty_stop().
From: Takashi Yano via Cygwin-patches <cygwin-patches () cygwin ! com>
Date: 2021-01-29 3:46:26
Message-ID: 20210129034626.157-1-takashi.yano () nifty ! ne ! jp
[Download RAW message or body]
- Currently, thread created by pthread_create() is not suspended by
the signal SIGTSTP. For example, even if a process with a thread
is suspended by Ctrl-Z, the thread continues running. This patch
fixes the issue.
---
winsup/cygwin/exceptions.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index c98b92d30..3a6823325 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -902,7 +902,9 @@ sig_handle_tty_stop (int sig, siginfo_t *, void *)
thread. */
/* Use special cygwait parameter to handle SIGCONT. _main_tls.sig will
be cleared under lock when SIGCONT is detected. */
+ pthread::suspend_all_except_self ();
DWORD res = cygwait (NULL, cw_infinite, cw_sig_cont);
+ pthread::resume_all ();
switch (res)
{
case WAIT_SIGNALED:
--
2.30.0
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic