Ongoing Optimization: Unsynchronized Access with CppMem
/
0 Comments
I described my challenge in the last post. Let's 's start with our process of ongoing optimization. To…
Ongoing Optimization
Now it's time to put the theory into practice. The job is relatively easy. A small program should undergo…
CppMem – An Overview
CppMem is an interactive tool for exploring the behavior of small code snippets of the C++ memory model.…
Relaxed Semantics
The relaxed semantics is the end of the scale. The relaxed semantic is the weakest of all memory models…
Acquire-Release Fences
Acquire and release fences guarantee similar synchronization and ordering constraints as atomics with…
Fences are Memory Barriers
The key idea of a std::atomic_thread_fence is to establish synchronization and ordering constraints between…
Acquire-Release Semantics – The Typical Misunderstanding
A release operation synchronizes-with an acquire operation on the same atomic variable. So we can easily…
100 Posts Anniversary – Quo vadis Modernes C++?
As you may know, I translate in this blog the posts from my German blog into English. My German blog…
Transitivity of the Acquire-Release Semantic
A release operation synchronizes with an acquire operation on the same atomic variable and establishes,…
memory_order_consume
std::memory_order_consume is the most legendary of the six memory models. That's for two reasons. On…
Acquire-Release Semantic
With the acquire-release semantics, the memory model gets very thrilling. Because now, we do not have…
Sequential Consistency applied
I have introduced In the post Sequential Consistency the default memory model. This model, in which all…