On Tue, 21 Jan 2025, Takashi Yano wrote: > diff --git a/winsup/cygwin/cygwait.cc b/winsup/cygwin/cygwait.cc > index 80c0e971c..8613638f6 100644 > --- a/winsup/cygwin/cygwait.cc > +++ b/winsup/cygwin/cygwait.cc > @@ -58,16 +58,22 @@ cygwait (HANDLE object, PLARGE_INTEGER timeout, unsigned > mask) > } > > DWORD timeout_n; > + HANDLE &wait_timer = _my_tls.locals.cw_timer; > + HANDLE local_wait_timer = NULL; > if (!timeout) > timeout_n = WAIT_TIMEOUT + 1; > else > { > + if (_my_tls.locals.cw_timer_inuse) > + wait_timer = local_wait_timer;
Since wait_timer is a handle reference, won't assigning it here overwrite _my_tls.locals.cw_timer ? I think you might have to use a pointer here instead.