On Wed, 25 Jun 2025 13:43:26 +0200
Corinna Vinschen wrote:
> One last question.
> 
> On Jun 25 20:04, 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.
> > [...]
> > +     while (!in_singlestep_handler)
> > +       RtlWaitOnAddress (&in_singlestep_handler, &bool_false,
> > +                         sizeof (bool), NULL);
> 
> Is there *any* situation thinkable which would make this loop run
> forever?  I.e., a situation where the VEH doesn't start?  And,
> would we even have a way to handle that?

I cannot image such situation, but, yes, it is safer to use timeout
and error handling. Please check v4 patch.

-- 
Takashi Yano <[email protected]>

Reply via email to