There Is A Better Future
summary
Argues that std::future is flawed and shows a concrete alternative: stlab::future provides continuations, join/when_all and when_any, split, and built‑in cancellation that collapses unused graphs; it never blocks on destruction and behaves as a regular type. Demonstrates CSP channels for reusable n:m pipelines with buffering and executor control, backed by a task‑stealing thread pool and OS executors, running in production (used in Photoshop). Notes limits: reduction only for copyable types today and progress monitoring/cancel‑by‑request is planned.
AI-written summary · about
chapters (12)
- 0:00Introduction and speaker background
- 3:51Why concurrency matters today
- 11:07What are futures in C++
- 21:20Problems with standard futures
- 28:15Introducing STLab futures
- 37:35Continuations and error handling
- 49:42Joining futures with when_all
- 54:53Splitting futures for multiple consumers
- 1:00:01Custom executors explained
- 1:11:22Channels for complex pipelines
- 1:20:02Best practices and takeaways
- 1:23:18Q&A session
related talks
29mConcurrency TS Editor's Report
01h 08mBetter Code: Concurrency
05mSRP for Function Calls in C++
32mcompletion T : Improving the future T with monads
55mBack to the CompletableFuture: Concurrency in Action
47m“Multithreading is the answer. What is the question? (part 1 of 2)”
01h 02mAsynchronous Programming in Modern C++
01h 05m“The Continuing Future of C++ Concurrency"
