Concurrency: Unlocking a Solution
summary
A C++ lock-management framework enforces a predefined lock priority per object and records per-transaction descriptors and lock entries to validate shared/exclusive compatibility, build a wait-for graph, detect cycles and victimize transactions that declare a try-and-retrace strategy. The team implements lock handles, reentrancy counts, and promotion/degradation logic, demos four scenarios (happy path, order-violation, deadlock with assertion when both use in-order, and successful victimization when one uses retrace) and shows the victimization path prevents the 15s sleep-induced deadlock.
AI-written summary · about
chapters (5)
- 0:00Introduction to concurrency
- 3:16Locking challenges in multithreading
- 9:35Lock acquisition algorithm
- 15:54Demo of lock manager framework
- 25:10Summary and takeaways
related talks
40mKernel Locking Engineering
39mLive Lock-Free or Deadlock (Practical Lock-free Programming)
01h 06mLocks are tricky — let's understand them by building one
55m “High Performance C++ Concurrent Transactional Data Structures"
53mAtomics, Locks, and Tasks (part 1 of 2)
01h 00mConcurrency in C++20: A Deep Dive
01h 30mLive Lock-Free or Deadlock (Practical Lock-free Programming)
52mSTM and Structured Concurrency — The Battle with Multithreading Dragons
