Recently, I have concerned that testsuite winsup.api/pthread/cancel2 fails consistently.
https://github.com/cygwin/cygwin/actions/runs/19926408142/job/57127200619 I'm not sure why this happens, but it also falis in my local environment. I looked into this issue a bit, and found that access violation happnes in CloseHandle() in _cygtls::remove(). And I am also not sure why at all, cancel2 works if CloseHandle()'s are replaced with NtClose() as follows. diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc index 13d133f47..249c8cb18 100644 --- a/winsup/cygwin/cygtls.cc +++ b/winsup/cygwin/cygtls.cc @@ -118,7 +118,7 @@ _cygtls::remove (DWORD wait) { HANDLE h = signal_arrived; signal_arrived = NULL; - CloseHandle (h); + NtClose (h); } if (locals.drivemappings) @@ -148,7 +148,7 @@ _cygtls::remove (DWORD wait) if (mutex) { ReleaseMutex (mutex); - CloseHandle (mutex); + NtClose (mutex); } } Any idea? -- Takashi Yano <[email protected]> -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple

