From 7571a2676f0350de87b7ffa2b27d60dca34584cd Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 7 Oct 2026 22:44:36 +0100 Subject: [PATCH] Use relaxed ordering for nbio's mpsc head counter and pool's destroy exchange, as their acquire paired with nothing --- core/container/pool/pool.odin | 2 +- core/nbio/mpsc.odin | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/container/pool/pool.odin b/core/container/pool/pool.odin index c686d9d6b..c3c7adc20 100644 --- a/core/container/pool/pool.odin +++ b/core/container/pool/pool.odin @@ -48,7 +48,7 @@ init :: proc(p: ^Pool($T), $link_field: string, block_size: uint = DEFAULT_BLOCK } destroy :: proc(p: ^Pool($T)) { - elem := sync.atomic_exchange_explicit(&p.free_list, nil, .Acquire) + elem := sync.atomic_exchange_explicit(&p.free_list, nil, .Relaxed) sync.atomic_store_explicit(&p.num_ready, 0, .Relaxed) diff --git a/core/nbio/mpsc.odin b/core/nbio/mpsc.odin index 7f88829b4..6604e4bd6 100644 --- a/core/nbio/mpsc.odin +++ b/core/nbio/mpsc.odin @@ -32,7 +32,7 @@ mpsc_enqueue :: proc(mpscq: ^Multi_Producer_Single_Consumer, obj: rawptr) -> boo return false } - head := sync.atomic_add_explicit(&mpscq.head, 1, .Acquire) + head := sync.atomic_add_explicit(&mpscq.head, 1, .Relaxed) assert(mpscq.buffer[head & mpscq.mask] == nil) rv := sync.atomic_exchange_explicit(&mpscq.buffer[head & mpscq.mask], obj, .Release) assert(rv == nil)