Towards Async Everything Part 2 - Scopes, Construction, and Destruction
summary
Implements an io_uring context and a sender/receiver model for asynchronous construction and destruction, turning constructors/destructors into composable enter/exit scope senders and a lifetime algorithm that curries constructor arguments and allocates storage. Demonstrates an async file-handle async object that opens and closes via io_uring, an async cat that prints “hello world,” and srace evidence of zero syscalls under submission Q polling. Addresses noexcept and stop semantics, notes start_detach removal, and ships a PR against Nvidia’s stdexec.
AI-written summary · about
chapters (13)
- 0:00Recap of IOU ring context
- 1:05Async construction and destruction
- 3:31Async open with IOU ring
- 10:13Resource cleanup challenges
- 16:20Destructors can't block
- 22:43Problem with destructors
- 28:02Construction/destruction as senders
- 36:35Enter and exit scope senders
- 46:03Language for scope management
- 54:09Async file descriptor example
- 1:00:05Async cat application
- 1:05:25Async cat zero syscalls
- 1:08:35Summary and path
related talks
01h 11mAsynchronous C++
01h 01mExecutors for C++ - A Long Story ...
29mAsychronous programming in Rust
26mReasoning with Async Rust
18mA better way of doing Async Rust
32mLet's build an async runtime together
01h 24mEasy Senders/Receivers
50mExtending std::execution Further - Higher-Order Senders and the Shape of Asynchronous Programs
