On Apr 8 19:37, Takashi Yano wrote:
> On Tue, 8 Apr 2025 12:23:24 +0200
> Corinna Vinschen wrote:
> > looks good, but...
> >
> > On Apr 6 19:57, Takashi Yano wrote:
> > > @@ -1685,7 +1700,15 @@ pthread_key::~pthread_key ()
> > > */
> > > if (magic != 0)
> > > {
> > > - keys.remove (this);
> > > + LONG64 seq = keys[key_idx].seq;
> > > + assert (pthread_key::keys_list::ready (seq)
> > > + && InterlockedCompareExchange64 (&keys[key_idx].seq,
> > > + seq + 1, seq) == seq);
> >
> > ...do we really want to assert here? Shouldn't this better just skip
> > the rest of the function?
>
> Sounds reasonable. Skipping before TlsFree (tls_index), right?
If seq is wrong, the code should just leave, I think, not touching
anything.
Corinna