Async Rust: Where does the scheduler live?
10 points by mond
10 points by mond
The complaint about Tokio having the "hidden runtime argument" passed around is very valid. I think the attempts to "erase" asynchronous runtimes and attempting to make them invisible to the user hurts more than it helps for comprehension.
Yeah, that's where I arrived. I don't know if I'm right, but that's the one thing that just doesn't quite sit right with me.
This isn't unique to Tokio.
Any sane async implementation (i.e. one which can run without threads at least as long as you're not doing async file IO) is going to have some global/thread-local (potentially even scoped in some intriguing way) state in rust.
That's not to say that this design decision is great, but there are also plenty of downsides to the alternatives.
I think the bingo card angle is very funny.