https://issues.dlang.org/show_bug.cgi?id=16352
safety0ff.bugz <safety0ff.b...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |safety0ff.b...@gmail.com --- Comment #6 from safety0ff.bugz <safety0ff.b...@gmail.com> --- SharedFreeList.allocate looks ABA prone: A thread does: do { oldRoot = _root; // atomic load if (!oldRoot) return allocateFresh(bytes); next = oldRoot.next; // atomic load } while (!cas(&_root, oldRoot, next)); But the value of `next` could have changed between the load and the cas. --