“Multithreading is the answer. What is the question? (part 2 of 2)”
summary
Argues that multithreading is manageable by concrete abstractions: implements libGuarded (guarded, shared_guarded, ordered_guarded, deferred_guarded) and then builds an RCU list + RCU guarded wrapper to solve a real deadlock in CsSignal. Readers take lockless const handles, writers serialize; deleted nodes go to a zombie list reclaimed by the oldest reader; cost is a few bytes plus one malloc per read-lock. The implementation uses C++11/14 atomics and works in practice.
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:24Reviewing multithreaded code
- 2:50Mutex
- 7:03Lock
- 10:52Shared Guarded
- 15:35Ordered Guarded
- 20:22Deferred Guarded
- 23:11Generalized Guarded
- 28:56RCU guarded
- 34:48Zombie list
- 43:52Rangebased for
- 45:25Race conditions
- 46:02Outro
related talks
59mAn Introduction to Multithreading in C++20
55m“A lock-free concurrency toolkit for deferred reclamation and optimistic speculation"
53mAtomics, Locks, and Tasks (part 1 of 2)
01h 04mBack to Basics: Concurrency
01h 14mMultithreading in UI application: When some threads are more equal than others
47mConcurrent Programming in C++
01h 28mAn Introduction to Multithreading in C++20
01h 08mBetter Code: Concurrency
