From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7868) id 5EA943858C54; Sun, 8 May 2022 11:06:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5EA943858C54 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Takashi Yano To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: pty: Fix acquiring attach_mutex timing. X-Act-Checkin: newlib-cygwin X-Git-Author: Takashi Yano X-Git-Refname: refs/heads/master X-Git-Oldrev: aa9b5262f238d446260ec06d962f4c325a64dd89 X-Git-Newrev: b29fd96cac1df380d2be05892dab35888598186f Message-Id: <20220508110644.5EA943858C54@sourceware.org> Date: Sun, 8 May 2022 11:06:44 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 May 2022 11:06:44 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3Db29fd96cac1= df380d2be05892dab35888598186f commit b29fd96cac1df380d2be05892dab35888598186f Author: Takashi Yano Date: Sun May 8 19:45:31 2022 +0900 Cygwin: pty: Fix acquiring attach_mutex timing. =20 - When temporarily attaching a console, the timing of acquiring attach_mutex was not appropriate. This sometimes caused master forwarding thread to crash on Ctrl-C in Windows 7. This patch fixes the issue. Diff: --- winsup/cygwin/fhandler_tty.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 484bf55dc..bdde1dce6 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -4171,13 +4171,13 @@ DWORD fhandler_pty_common::attach_console_temporarily (DWORD target_pid) { DWORD resume_pid =3D 0; + acquire_attach_mutex (mutex_timeout); pinfo pinfo_resume (myself->ppid); if (pinfo_resume) resume_pid =3D pinfo_resume->dwProcessId; if (!resume_pid) resume_pid =3D get_console_process_id (myself->dwProcessId, false); bool console_exists =3D fhandler_console::exists (); - acquire_attach_mutex (mutex_timeout); if (!console_exists || resume_pid) { FreeConsole ();