
Ongoing Optimization: A Data Race with CppMem
/
0 Comments
But we can improve and further improve the acquire-release semantics of the last post. Why should x be…

Ongoing Optimization: Acquire-Release Semantics with CppMem
With the acquire-release semantics, we break the sequential consistency. In the acquire-release semantics,…

Ongoing Optimization: Sequential Consistency with CppMem
With atomic data types, you can tailor your program to your needs and optimize it. But now we are in…

Ongoing Optimization: Locks and Volatile with CppMem
The easiest way to solve the undefined behaviour in the post Ongoing Optimization: Unsynchronized access…

Looking for Proofreaders for my New C++ Book
Something completely different. I'm looking for English proofreaders for my new book.
O'Reilly gave…

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

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…

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…