Skip to content

Async practice problems in Rust

Difficulty:
Category:
Tag:

Showing 20 of 20

Status Title Difficulty
A logical-time reactor: timers without a clock Hard
Async recursion, async closures, and streams Hard
`block_on`: the smallest thing that can run a future Easy
Cancellation is just: stop polling and drop Medium
Cancel safety, blocking, and locks across `.await` Hard
Capstone: an async executor with a logical-time reactor Hard
Countdown futures and the shape of `Pending` Easy
Fairness and starvation in your scheduler Medium
Futures are lazy: nothing happens until you poll Easy
Hand-compile an `async fn` into a state machine Hard
Hand-rolling `join`: running two futures concurrently Medium
Hand-rolling `select`: racing futures and dropping the loser Medium
Implementing `Wake`: a real task waker and the lost-wakeup bug Medium
`poll_fn`: a future from a closure Easy
`RawWaker` and `RawWakerVTable`: building a `Waker` with unsafe Hard
Spawning, `JoinHandle`, and getting values back out Hard
Structural pinning and safe pin projection by hand Hard
The `Future` trait: `Output`, `Poll`, and your first hand-written future Easy
The minimal single-threaded executor Hard
`Unpin` in practice: making `Pin<&mut Self>` usable without unsafe Medium