Structured Concurrency
summary
Claim: P2300 senders/receivers let an entire concurrent C++ application be expressed as nested computations that have one entry and one exit, so the whole program can be one sender and recursively decomposed into many senders. Concrete tools shown: thread_pool and io_context schedulers, when_all/then composition, and the completion model (set_value set_error set_stopped). Example: an HTTP “cartoonify” server that offloads CPU work to a thread pool. Historical note: structured programming solved in <10 years, concurrency still ranks top frustration after 57 years.
AI-written summary · about
chapters (18)
- 0:00Start
- 6:04Agenda
- 7:50Abstractions as Building Blocks
- 9:48Function
- 10:51Classic Example of an Abstraction
- 11:39Why Do We Use Abstractions
- 16:28Local Reasoning
- 21:13Caveats
- 22:06Soundness and Completeness
- 23:06Summary Structure Programming
- 43:48Create the Operation States
- 51:06Theoretical Results
- 56:23Recursive Decomposition
- 58:42Single Entry Single Exit Point
- 1:04:26Interactions between Senders and Core Routines
- 1:07:08Listener
- 1:09:00Start Detach
- 1:19:11Conclusions
related talks
54mStructured Concurrency: Hierarchical Cancellation & Error Handling
43mStructured Concurrency in Java - The What and the Why
41mStructured Concurrency in Java: The What & Why
50mStructured Concurrency: Managing the Hierarchical Cancelation and Error Handling
45mTaming the Chaos - Structured Concurrency
01h 24mEasy Senders/Receivers
01h 02mStructured Concurrency: Managing the Hierarchical Cancelation and Error Handling
47mConcurrent Programming in C++
