Summary
So, what a ride! As I said in the introduction for this chapter, this is one of the biggest ones in this book, but even though you might not realize it, you’ve already got a better grasp of how asynchronous Rust works than most people do. Great work!
In this chapter, you learned a lot about runtimes and why Rust designed the Future
trait and the Waker
the way it did. You also learned about reactors and executors, Waker
types, Futures
traits, and different ways of achieving concurrency through the join_all
function and spawning new top-level futures on the executor.
By now, you also have an idea of how we can achieve both concurrency and parallelism by combining our own runtime with OS threads.
Now, we’ve created our own async universe consisting of coro/wait
, our own Future
trait, our own Waker
definition, and our own runtime. I’ve made sure that we don’t stray away from the core ideas behind asynchronous programming in Rust so that everything...