On Jun 25 19:58, Takashi Yano wrote:
> On Tue, 24 Jun 2025 10:02:08 +0200
> Corinna Vinschen wrote:
> > Hi Takashi,
> > 
> > On Jun 24 05:56, Takashi Yano wrote:
> > > After the commit f305ca916ad2, some stress-ng tests fail in arm64
> > > windows. There seems to be two causes for this issue. One is that
> > > calling SuspendThread(GetCurrentThread()) may suspend myself in
> > > the kernel. Branching to sigdelayed in the kernel code does not
> > > work as expected as the original _cygtls::interrup_now() intended.
> > > The other cause is, single step exception sometimes does not trigger
> > > exception::handle() for some reason. Therefore, register vectored
> > > exception handler (VEH) and use it for single step exception instead.
> > 
> > Patch LGTM, except that we have to link against another DLL now.
> > I searched for another way and it turns out there are equivalent
> > Rtl functions RtlWaitOnAddress/RtlWakeAddressSingle in ntdll.dll.
> > 
> > I pasted my tweak to your patch below, hope that's ok with you.
> 
> Thanks!
> 
> I tested your tweaked patch, and it works as expected.

Great, thanks!

> One thing I do not understand is, what is the last argument
> of RtlWaitOnAddress()? Is there any document about that?

It's the timeout value.  The same thing as with NtCreateTimer.
Compare with 
https://sourceware.org/cgit/newlib-cygwin/tree/winsup/cygwin/local_includes/cygwait.h#n36

Documentation is... rare. Very unfortunate.


Corinna

Reply via email to