www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Is there further documentation of core.atomic.MemoryOrder?

reply Nathan S. <no.public.email example.com> writes:
Is there a formal description of "hoist-load", "hoist-store", 
"sink-load", and "sink-store" as used in core.atomic.MemoryOrder 
(https://dlang.org/library/core/atomic/memory_order.html)?
Sep 13
parent reply Johan Engelen <j j.nl> writes:
On Wednesday, 13 September 2017 at 14:40:55 UTC, Nathan S. wrote:
 Is there a formal description of "hoist-load", "hoist-store", 
 "sink-load", and "sink-store" as used in 
 core.atomic.MemoryOrder 
 (https://dlang.org/library/core/atomic/memory_order.html)?
You can read this: https://llvm.org/docs/Atomics.html#atomic-orderings And use this: ``` static if (ms == MemoryOrder.acq) { enum _ordering = AtomicOrdering.Acquire; } else static if (ms == MemoryOrder.rel) { enum _ordering = AtomicOrdering.Release; } else static if (ms == MemoryOrder.seq) { enum _ordering = AtomicOrdering.SequentiallyConsistent; } else static if (ms == MemoryOrder.raw) { enum _ordering = AtomicOrdering.Monotonic; } ``` -Johan
Sep 17
parent Nathan S. <no.public.email example.com> writes:
Thank you. For anyone else with the same question, I also found 
this page helpful:
http://en.cppreference.com/w/cpp/atomic/memory_order
Oct 03