On Nov 14, 2012, at 6:32 AM, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote: > > This is a simplification of what should be going on. The > core.atomic.{atomicLoad, atomicStore} functions must be intrinsics so the > compiler generate sequentially consistent code with them (i.e. not perform > certain reorderings). Then there are loads and stores with weaker consistency > semantics (acquire, release, acquire/release, and consume).
No. These functions all contain volatile ask blocks. If the compiler respected the "volatile" it would be enough.