Asychronous programming in Rust
summary
Describes migrating a Red Hat service from a synchronous single-thread to an async multithreaded model and why that stops linear lock-acquisition slowdowns; outlines use of Tokio runtime and futures-rs (async/await, Future::poll, Waker, executors), explains that futures don’t run until polled or spawned, warns never to block in poll, and details a working custom sum read-write lock that tracks per-element read/write and all-read/all-write states, stores wakers, and cleans up on drop so waiting tasks wake and progress.
AI-written summary · about
chapters (10)
- 0:00Async Rust introduction
- 1:03State of async in Rust
- 2:51Language/library support
- 5:20Futures and tasks fundamentals
- 8:32Polling Futures correctly
- 10:18Tokyo runtime blocking
- 12:23Async syntax patterns
- 15:32Read-write lock case study
- 22:57Async Rust benefits/challenges
- 25:43Q&A kernel space
related talks
18mA better way of doing Async Rust
46mA Tale of Two Asyncs
42m"Cancelling Async Rust"
31mAsync Rust: Past, Present, and Future
32mLet's build an async runtime together
26mReasoning with Async Rust
47mA Tale of Two Asyncs: Open Source Language Design in Rust and Node.js
53mOpening Keynote with Carl Lerche and Alice Ryhl
