At our December meeting, Valentin Ziegler from think-cell will talk about the C++11 memory model.
The C++ memory model defines how multiple threads interact with memory and shared data. This model enables you to reason about concurrent code in a platform independent way.
First, Valentin will discuss multi-threaded executions and data races in C++, and why you need to be aware of optimizations performed by compiler and hardware.
Then he will show how consistency is achieved using locks and atomic operations. Finally, Valentin will take a close look at the different memory orders for atomic operations, even those you should never use.