undefinedEng

Ongoing Optimization: Unsynchronized Access with CppMem

/
I described my challenge in the last post. Let's 's start with our process of ongoing optimization. To…
ongoingOptimization

Ongoing Optimization

/
Now it's time to put the theory into practice. The job is relatively easy. A small program should undergo…
CppMemUeberblickNumbers

CppMem – An Overview

/
CppMem is an interactive tool for exploring the behavior of small code snippets of the C++ memory model.…
relaxed

Relaxed Semantics

/
The relaxed semantics is the end of the scale. The relaxed semantic is the weakest of all memory models…
acquireOperation

Acquire-Release Fences

/
Acquire and release fences guarantee similar synchronization and ordering constraints as atomics with…
FullFence

Fences are Memory Barriers

/
The key idea of a std::atomic_thread_fence is to establish synchronization and ordering constraints between…
acquireReleaseWithWaiting

Acquire-Release Semantics – The Typical Misunderstanding

/
A release operation synchronizes-with an acquire operation on the same atomic variable. So we can easily…
poll

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…
trans

Transitivity of the Acquire-Release Semantic

/
A release operation synchronizes with an acquire operation on the same atomic variable and establishes,…
acquireReleaseConsume

memory_order_consume

/
std::memory_order_consume is the most legendary of the six memory models. That's for two reasons. On…
criticalRegion

Acquire-Release Semantic

/
With the acquire-release semantics, the memory model gets very thrilling. Because now, we do not have…
producerConsumer

Sequential Consistency applied

/
I have introduced In the post Sequential Consistency the default memory model. This model, in which all…