How I Learned to Stop Worrying and Love Juggling C++ Atomics -- brilliantsugar
In his recent blog post brilliantsugar talks about technics to find race conditions in multithreading code by using different tools.
How I Learned to Stop Worrying and Love Juggling C++ Atomics
by brilliantsugar
From the blog post
As most C++ programmers are aware, courtesy of Herb Sutter, programming lock-free data structures is akin to juggling razor blades. Reasoning about concurrent programs is already complex enough but modern CPU memory models are so complicated that they manage to make it even harder. The prevailing suggestion you often come across is to steer clear of lock-free programming entirely.
In this article, I share the adventures of exploring methods for formally verifying lock-free C++ code. To showcase three different approaches, I delve into the implementation of a lock-free triple buffer data structure.

A new episode of the series about SObjectizer and message passing:
In this post, we'll dive into implementing this technique in C++17 and then explore how it evolves with the application of C++20 concepts to the code. The goal is to simplify the code by eliminating the need for cumbersome constructs like enable_if and introduce further improvements in C++23.
A new episode of the series about SObjectizer and message passing: