Thursday
Room 2
11:40 - 12:40
(UTC+02)
Talk (60 min)
How to implement C++26 RCU
C++26 introduces two new low level concurrency primitives: rcu and hazard pointers. Both can serve as fast, practical alternatives to locking - if you know how to use them.
In this talk we take a deep dive into the first one.
We start by looking at the simplest motivational example: a rarely updated config that is read by many threads.
Then we go through rcu implementations, progressively adding more and more interesting features and requirements.
While building rcu, we talk about the very low level concurrency primitives, including newer ones, such as asymmetric fences and atomic wait/notify.
I'll also briefly cover the hazard pointers API so you leave with a complete picture of both C++26 primitives.
