[PATCH] Cygwin: exceptions.cc: Suspend all threads in sig_handle_tty_stop().
Takashi Yano
takashi.yano@nifty.ne.jp
Fri Jan 29 03:46:26 GMT 2021
- 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
More information about the Cygwin-patches
mailing list