A Pattern Language for Expressing Concurrency in Cpp
summary
Claim: C++ can get structured concurrency by adopting senders/receivers (P2300) as primitives, matching five structured‑programming principles. Tools and idioms shown: algorithms like just, then, schedule, transfer, let_value and when_all composed with thread‑pool and IO schedulers. Demonstration: a working HTTP server that cartoonifies images by transferring work between IO and CPU pools, forking parallel image ops and joining them with when_all. Outcome: the pattern vocabulary (eight core patterns) composes safely and avoids explicit locks while remaining efficient.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 3:35Structure Concurrency
- 9:46Hello World
- 18:02Visual Representation
- 18:47Exit Points
- 20:02Patterns
- 21:22Synchronous Waiting
- 23:02Transform Values
- 25:57Exceptions
- 27:32Scheduling
- 33:12Composition
- 37:32Starting senders in other contexts
- 39:44Transfer between context
- 47:55Handling HTTP Requests
related talks
42mHistory of Concurrency
53mAsync sequences and algorithms to compose them
38mAccidentally Concurrent
49mThinking in a Highly Concurrent, Mostly-functional Language
55mBehavioral Modeling in HW/SW Co-design Using C++ Coroutines
01h 01mComposable C++: Principles and Patterns
01h 00mDesign Idioms from an Alternate Universe
01h 05mPipeline architectures in C++
