acquire load
A load that no later memory access of the same thread may move ahead of; used to read a flag before reading the data it guards.
An acquire load (ARM64 ldar/ldapr, RISC-V lr/amo with .aq or a following fence r,rw, C++ memory_order_acquire) orders itself before all later loads and stores in program order; on x86-64 every ordinary load already has acquire semantics.
Examples
The reader spins on
ready.load(std::memory_order_acquire); once it seestrue, it also seesdatafilled.
See also