undefinedEng

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

Ongoing Optimization: Acquire-Release Semantics with CppMem

/
With the acquire-release semantics, we break the sequential consistency. In the acquire-release semantics,…
sukzessiveOptimierungSequenzielleKonsistenzEng

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

Ongoing Optimization: Locks and Volatile with CppMem

/
The easiest way to solve the undefined behaviour in the post Ongoing Optimization: Unsynchronized access…
KurzUndGutStandardbibliothek

Looking for Proofreaders for my New C++ Book

/
Something completely different. I'm looking for English proofreaders for my new book. O'Reilly gave…
ongoingOptimization

Ongoing Optimization

/
Now it's time to put the theory into practice. The job is relatively easy. A small program should undergo…
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…
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…