A Unifying Abstraction for Async in C++
summary
Argues that the proposed Sender/Receiver model becomes a low‑overhead unifying abstraction for async in C++, showing concrete mechanics: compose lazy senders (no allocations, no synchronization, no type‑erasure), run them with a single submit API, convert coroutines into receivers for zero‑overhead co_await support, and implement blocking with sync_wait or build eager futures on top of senders. Demonstrates an executor as a sender (new_thread example) and discusses cancellation, error channels, and P1660 work toward C++ standardization.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 3:44Concurrency vs parallelism
- 12:45Problems with current futures
- 20:45Building lazy abstractions
- 26:29Generic algorithms and tasks
- 33:15Senders and receivers
- 37:59Integration with coroutines
- 46:03Building complex graphs
- 53:42Conclusion and resources
- 55:47Q&A session
related talks
01h 07mThe Asynchronous C++ Parallel Programming Model
47mYou Keep Using That Word
49mNeed for ASYNC: in pursuit of scalable internet-scale applications
22mAsynchronous Computing at Scale: Overview and Learning
35mCommunicating Sequential Processes
21mEnabling User-level Asynchronous Tasking in the FA-BSP Model - Case Study:(…)
46mKeynote: You Keep Using That Word
47mDistributed Async Await • A new programming model for the cloud
