Acquire
cannot move anything up beyond an acquire
Release
cannot move anything down beyond a release
Note
acquire/release cannot be reordered with respect to each other
What does this mean?
instructions can be reordered from before an acquire to after an acquire
instructions can be reordered from after a release to before a release
acquire cannot be reordered before or after a release
release cannot be reordered before or after an acquire
std::atomic
read = load_acquire --> read the value == acquire the value
write = store_release --> write the value == release the value
Sequential Consistency
Transitivity / Causality
Total Store Order
No comments:
Post a Comment