Posts
![FullFence](https://www.modernescpp.com/wp-content/uploads/2016/07/FullFence.png)
Fences are Memory Barriers
/
0 Comments
The key idea of a std::atomic_thread_fence is to establish synchronization and ordering constraints between…
![acquireReleaseWithWaiting](https://www.modernescpp.com/wp-content/uploads/2016/07/acquireReleaseWithWaiting.png)
Acquire-Release Semantics – The Typical Misunderstanding
A release operation synchronizes-with an acquire operation on the same atomic variable. So we can easily…
![acquireReleaseConsume](https://www.modernescpp.com/wp-content/uploads/2016/07/acquireReleaseConsume.png)
memory_order_consume
std::memory_order_consume is the most legendary of the six memory models. That's for two reasons. On…
![criticalRegion](https://www.modernescpp.com/wp-content/uploads/2016/07/criticalRegion.png)
Acquire-Release Semantic
With the acquire-release semantics, the memory model gets very thrilling. Because now, we do not have…
![producerConsumer](https://www.modernescpp.com/wp-content/uploads/2016/07/producerConsumer.png)
Sequential Consistency applied
I have introduced In the post Sequential Consistency the default memory model. This model, in which all…
![atomicOperationsReadWriteEng](https://www.modernescpp.com/wp-content/uploads/2016/06/atomicOperationsReadWriteEng.png)
Synchronization and Ordering Constraints
In this post, our tour through the c++ memory model goes one step deeper. Until now, the posts were only…
Atomics
In addition to booleans, there is atomics for pointers, integrals, and user-defined types. The rules…
![twoAtomics](https://www.modernescpp.com/wp-content/uploads/2016/06/twoAtomics.png)
Sequential Consistency
The atomics are the base of the C++ memory model. Per default, sequential consistency is applied.
The…
![spinLockSleep](https://www.modernescpp.com/wp-content/uploads/2016/06/spinLockSleep.png)
The Atomic Flag
Atomics guarantee two characteristics. On the one hand, they are atomic, on the other, they provide synchronization…