Date: Sat, 04 Oct 2025 09:47:48 -0700
On Saturday, 4 October 2025 07:19:35 Pacific Daylight Time Frederick Virchanza
Gotham via Std-Proposals wrote:
> FreeNode *const node = &nodes[index];
> FreeNode *oldHead = freeList.load(std::memory_order_relaxed);
>
> do node->next = oldHead;
> while ( false == freeList.compare_exchange_weak(oldHead, node,
> std::memory_order_release, std::memory_order_relaxed) );
There's probably an ABA problem here.
Gotham via Std-Proposals wrote:
> FreeNode *const node = &nodes[index];
> FreeNode *oldHead = freeList.load(std::memory_order_relaxed);
>
> do node->next = oldHead;
> while ( false == freeList.compare_exchange_weak(oldHead, node,
> std::memory_order_release, std::memory_order_relaxed) );
There's probably an ABA problem here.
-- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Principal Engineer - Intel Data Center Group
Received on 2025-10-04 16:47:56