Introduction to Sender/Receiver framework
summary
Covers concrete sender/receiver primitives, shows working examples built with stdexec and NVIDIA's implementation, ties them to C++20 coroutines by mapping awaitables to senders, and implements algorithms like then, let_value, and sync_wait with a thread‑pool scheduler. Reports that std::execution (P2300) is voted in for C++26, cites libunifex running in production at scale, and demonstrates runnable examples (slides and Godbolt links) so the model and libraries actually compile and interoperate.
AI-written summary · about
chapters (31)
- 0:00Welcome
- 1:48Why learn senders/receivers
- 3:38Concurrency vs parallelism
- 6:33C++11 primitives limits
- 8:44Async execution proposals evolution
- 10:31From promises to sender/receiver
- 13:42Lazy futures and type erasure
- 15:27Implementing lazy future type
- 18:01Composing lazy futures
- 20:12Blocking on lazy futures
- 22:47Thread creation abstraction
- 24:37Sender/receiver advantages
- 26:23Tardigrades mascot
- 27:07Sender/receiver proposal
- 27:50Motivation for sender/receiver
- 28:54Async libraries limitations
- 29:59Key concepts: schedulers, senders, receivers
- 31:46Hello world with senders/receivers
- 33:56Parallel execution with senders
- 35:24Runtime control flow with let_value
- 38:39Sender/receiver as CPS
- 40:31Integrating sender/receiver
- 41:58Libunifex and production
- 43:25Implementing just sender
- 47:40Implementing then sender
- 50:09Building minimal receiver
- 51:15Coroutines and senders connection
- 52:43Sender/receiver in C++26
- 53:46Q&A: Readability vs performance
- 58:03Q&A: Separation of concerns
- 1:00:36Q&A: Procedural to declarative
related talks
56mAlgorithm Design For Values Distributed In Time
58mReactive programming and Qt
33mCommunicating with channels
01h 28mIntroduction to Reactive Programming
41mExploring reactive programming in Java
19mNext Level gRPC With Kotlin and Coroutines
55mFlight of the Flux: A look at Reactor execution model
41mStructured Concurrency: Managing the Hierarchical Cancelation and Error Handling
