Ongoing Optimization: Acquire-Release Semantic with CppMem

With the acquire-release semantics, we break the sequential consistency. In the acquire-release semantics, synchronization occurs between atomic operations on the same atomic and not between threads.

Read more
Views: 13841

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 the domain of multithreading experts.

Read more
Views: 14384

Ongoing Optimization: Locks and Volatile with CppMem

The easiest way to solve the undefined behaviour in the post Ongoing Optimization: Unsynchronized access is, to use a lock.

Read more
Views: 14717

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 be sure, I verify my reasoning with CppMem. I once made a big mistake in my presentation at Meeting C++ 2014.

Read more
Views: 15343

Ongoing Optimization

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

Read more
Views: 14967

CppMem - An Overview

CppMem is an interactive tool for exploring the behavior of small code snippets of the C++ memory model. No, it should have to be in the toolbox of each programmer who deals seriously with the memory model.

Read more
Views: 27928

Relaxed Semantic

The relaxed semantics is the end of the scale. The relaxed semantic is the weakest of all memory models and guarantees that the operations on atomic variables are atomic.

Read more
Views: 28212

Acquire-Release Fences

Acquire and release fences guarantee similar synchronization and ordering constraints as atomics with acquire-release semantics. Similar because the differences are in the details.

Read more
Views: 44131

Fences are Memory Barriers

The key idea of a std::atomic_thread_fence is to establish synchronization and ordering constraints between threads without an atomic operation.

Read more
Views: 88297

Acquire-Release Semantics - The Typical Misunderstanding

A release operation synchronizes-with an acquire operation on the same atomic variable. So we can easily synchronise threads, if ... . Today's post is about the if.

Read more
Views: 26900


Stay Informed about my Mentoring


English Books

Course: Modern C++ Concurrency in Practice

Course: C++ Standard Library including C++14 & C++17

Course: Embedded Programming with Modern C++

Course: Generic Programming (Templates)

Course: C++ Fundamentals for Professionals

Interactive Course: The All-in-One Guide to C++20

Subscribe to the newsletter (+ pdf bundle)

All tags

Blog archive

Source Code


Today 1567

Yesterday 4791

Week 1567

Month 191643

All 11672797

Currently are 377 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments