diff --git a/loony.nimble b/loony.nimble index e2b7dd7..1fc73a0 100644 --- a/loony.nimble +++ b/loony.nimble @@ -1,4 +1,4 @@ -version = "0.1.13" +version = "0.1.14" author = "cabboose" description = "Fast mpmc queue with sympathetic memory behavior" license = "MIT" diff --git a/loony/node.nim b/loony/node.nim index 7227868..021eedf 100644 --- a/loony/node.nim +++ b/loony/node.nim @@ -107,7 +107,8 @@ template compareAndSwapNext*(t: Node, expect: var uint, swap: uint): bool = t.next.compareExchange(expect, swap, moRelaxed) # MO as per cpp impl template compareAndSwapNext*(t: NodePtr, expect: var uint, swap: uint): bool = - (toNode t).next.compareExchange(expect, swap, moRelaxed) # MO as per cpp impl + # cpp impl is Relaxed; we use Release here to remove tsan warning + (toNode t).next.compareExchange(expect, swap, moRelease) proc `=destroy`*(n: var Node) = decDebugCounter()