forked from msys2/MSYS2-packages
-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #201 from git-for-windows/msys2-runtime-395fda678b…
…4448587cabbeab936318459c10f209 msys2-runtime: update to 395fda678b4448587cabbeab936318459c10f209
- Loading branch information
Showing
3 changed files
with
67 additions
and
6 deletions.
There are no files selected for viewing
58 changes: 58 additions & 0 deletions
58
msys2-runtime/0056-Cygwin-revert-use-of-CancelSyncronousIo-on-wait_thre.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
From 395fda678b4448587cabbeab936318459c10f209 Mon Sep 17 00:00:00 2001 | ||
From: Jeremy Drake <github@jdrake.com> | ||
Date: Thu, 21 Nov 2024 22:13:42 -0800 | ||
Subject: [PATCH 56/N] Cygwin: revert use of CancelSyncronousIo on | ||
wait_thread. | ||
|
||
It appears this is causing hangs on native x86_64 in similar scenarios | ||
as the hangs on ARM64, because `CancelSynchronousIo` is returning `TRUE` | ||
but not canceling the `ReadFile` call as expected. | ||
|
||
Cherry-picked from msys2/msys2-runtime's 2eb6be14ee (Cygwin: revert use | ||
of CancelSyncronousIo on wait_thread., 2024-11-21). | ||
|
||
Addresses: https://github.com/msys2/MSYS2-packages/issues/4340#issuecomment-2491401847 | ||
Fixes: b091b47b9e56 ("cygthread: suspend thread before terminating.") | ||
Signed-off-by: Jeremy Drake <cygwin@jdrake.com> | ||
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> | ||
--- | ||
winsup/cygwin/pinfo.cc | 7 +++---- | ||
winsup/cygwin/sigproc.cc | 3 +-- | ||
2 files changed, 4 insertions(+), 6 deletions(-) | ||
|
||
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc | ||
index 43e0034..a5f5d6e 100644 | ||
--- a/winsup/cygwin/pinfo.cc | ||
+++ b/winsup/cygwin/pinfo.cc | ||
@@ -1262,14 +1262,13 @@ proc_waiter (void *arg) | ||
|
||
for (;;) | ||
{ | ||
- DWORD nb, err; | ||
+ DWORD nb; | ||
char buf = '\0'; | ||
|
||
if (!ReadFile (vchild.rd_proc_pipe, &buf, 1, &nb, NULL) | ||
- && (err = GetLastError ()) != ERROR_BROKEN_PIPE) | ||
+ && GetLastError () != ERROR_BROKEN_PIPE) | ||
{ | ||
- if (err != ERROR_OPERATION_ABORTED) | ||
- system_printf ("error on read of child wait pipe %p, %E", vchild.rd_proc_pipe); | ||
+ system_printf ("error on read of child wait pipe %p, %E", vchild.rd_proc_pipe); | ||
break; | ||
} | ||
|
||
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc | ||
index d180277..5c5ff73 100644 | ||
--- a/winsup/cygwin/sigproc.cc | ||
+++ b/winsup/cygwin/sigproc.cc | ||
@@ -410,8 +410,7 @@ proc_terminate () | ||
if (!have_execed || !have_execed_cygwin) | ||
chld_procs[i]->ppid = 1; | ||
if (chld_procs[i].wait_thread) | ||
- if (!CancelSynchronousIo (chld_procs[i].wait_thread->thread_handle ())) | ||
- chld_procs[i].wait_thread->terminate_thread (); | ||
+ chld_procs[i].wait_thread->terminate_thread (); | ||
/* Release memory associated with this process unless it is 'myself'. | ||
'myself' is only in the chld_procs table when we've execed. We | ||
reach here when the next process has finished initializing but we |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
54a725237845135bbb4609e1194366dece79a0e3 | ||
395fda678b4448587cabbeab936318459c10f209 |