public inbox for cygwin-patches@cygwin.com
 help / color / mirror / Atom feed
* [PATCH] Cygwin: console: Prevent the exec'ed bash from exiting by Ctrl-C.
@ 2021-11-03  6:14 Takashi Yano
  2021-11-03 14:15 ` Corinna Vinschen
  0 siblings, 1 reply; 2+ messages in thread
From: Takashi Yano @ 2021-11-03  6:14 UTC (permalink / raw)
  To: cygwin-patches

- Currently, bash occasionally exits by Ctrl-C with the following
  scenario.
    1) Start bash in the command prompt.
    2) Run 'exec bash'.
    3) Press Ctrl-C several times.
  This patch fixes the issue.
---
 winsup/cygwin/sigproc.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index 8e70a9329..97211edcf 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -594,6 +594,14 @@ sig_send (_pinfo *p, siginfo_t& si, _cygtls *tls)
       p = myself;
     }
 
+  /* If myself is the stub process, send signal to the child process
+     rather than myself. The fact that myself->dwProcessId is not equal
+     to the current process id indicates myself is the stub process. */
+  if (its_me && myself->dwProcessId != GetCurrentProcessId ())
+    {
+      wait_for_completion = false;
+      its_me = false;
+    }
 
   if (its_me)
     sendsig = my_sendsig;
-- 
2.33.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Cygwin: console: Prevent the exec'ed bash from exiting by Ctrl-C.
  2021-11-03  6:14 [PATCH] Cygwin: console: Prevent the exec'ed bash from exiting by Ctrl-C Takashi Yano
@ 2021-11-03 14:15 ` Corinna Vinschen
  0 siblings, 0 replies; 2+ messages in thread
From: Corinna Vinschen @ 2021-11-03 14:15 UTC (permalink / raw)
  To: cygwin-patches

On Nov  3 15:14, Takashi Yano wrote:
> - Currently, bash occasionally exits by Ctrl-C with the following
>   scenario.
>     1) Start bash in the command prompt.
>     2) Run 'exec bash'.
>     3) Press Ctrl-C several times.
>   This patch fixes the issue.
> ---
>  winsup/cygwin/sigproc.cc | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
> index 8e70a9329..97211edcf 100644
> --- a/winsup/cygwin/sigproc.cc
> +++ b/winsup/cygwin/sigproc.cc
> @@ -594,6 +594,14 @@ sig_send (_pinfo *p, siginfo_t& si, _cygtls *tls)
>        p = myself;
>      }
>  
> +  /* If myself is the stub process, send signal to the child process
> +     rather than myself. The fact that myself->dwProcessId is not equal
> +     to the current process id indicates myself is the stub process. */
> +  if (its_me && myself->dwProcessId != GetCurrentProcessId ())
> +    {
> +      wait_for_completion = false;
> +      its_me = false;
> +    }
>  
>    if (its_me)
>      sendsig = my_sendsig;
> -- 
> 2.33.0

Pushed.


Thanks,
Corinna

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-11-03 14:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-03  6:14 [PATCH] Cygwin: console: Prevent the exec'ed bash from exiting by Ctrl-C Takashi Yano
2021-11-03 14:15 ` Corinna Vinschen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).