completion T : Improving the future T with monads
summary
SolidFire replaces std::future with a monadic, async-only alternative called completion that removes get/wait from the hot path, uses an expected<T> for value/error flow, and stores callbacks instead of blocking threads. Implementation uses a lightweight spin mutex, intrusive reference tracking, and an on_complete fire‑and‑forget path to slash small allocations and latency. Broken promises panic on destruction, completion remains compatible with std::promise via complete/set_value, and the system runs in production with markedly lower locking and exception overhead.
AI-written summary · about
chapters (9)
- 0:00Intro
- 0:36Who is SolidFire
- 3:10Future
- 11:06Completion
- 11:48Implementation
- 18:30Completion Promise
- 20:03Edge Cases
- 24:58Optimizations
- 29:51Conclusion
related talks
01h 28mThere Is A Better Future
55mBack to the CompletableFuture: Concurrency in Action
49mTrading in Futures
42mMonix Task: Lazy, Async and Awesome
48mCompletableFuture: The Promises of Java
44mCAN WE FREE CONCURRENT PROGRAMMING FROM THE MONADIC STYLE
01h 38mZero-allocation & no type erasure futures
28mBack to the CompletableFuture: Concurrency
