Posts
![BlockingNonBlocking](https://www.modernescpp.com/wp-content/uploads/2017/06/BlockingNonBlocking.png)
Blocking and Non-Blocking Algorithms
/
0 Comments
Blocking, non-blocking, lock-free, and wait-free. Each of these terms describes a key characteristic…
![gcc](https://www.modernescpp.com/wp-content/uploads/2016/08/gcc.png)
Thread-Safe Initialization of a Singleton
There are a lot of issues with the singleton pattern. I'm aware of that. But the singleton pattern is…
![undefinedEng](https://www.modernescpp.com/wp-content/uploads/2016/08/undefinedEng.png)
Ongoing Optimization: A Data Race with CppMem
But we can improve and further improve the acquire-release semantics of the last post. Why should x be…
![sukzessiveOptimierungSequenzielleKonsistenzEng](https://www.modernescpp.com/wp-content/uploads/2016/08/sukzessiveOptimierungSequenzielleKonsistenzEng.png)
Ongoing Optimization: Acquire-Release Semantics with CppMem
With the acquire-release semantics, we break the sequential consistency. In the acquire-release semantics,…
![acquireOperation](https://www.modernescpp.com/wp-content/uploads/2016/07/acquireOperation.png)
Acquire-Release Fences
Acquire and release fences guarantee similar synchronization and ordering constraints as atomics with…
![FullFence](https://www.modernescpp.com/wp-content/uploads/2016/07/FullFence.png)
Fences are Memory Barriers
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…
![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…