|
You are here |
blog.yoshuawuyts.com | ||
| | | | |
lewissbaker.github.io
|
|
| | | | | A tweak was made to the design of coroutines in 2018 to add a capability called "symmetric transfer" which allows you to suspend one coroutine and resume another coroutine without consuming any additional stack-space. The addition of this capability lifted a key limitation of the Coroutines TS and allows for much simpler and more efficient implementation of async coroutine types without sacrificing any of the safety aspects needed to guard against stack-overflow. In this post will attempt to explain the stack-overflow problem and how the addition of this key "symmetric transfer" capability lets us solve this problem. | |
| | | | |
tmandry.gitlab.io
|
|
| | | | | For just about as long as I've been working on async Rust, the topic of scoped tasks has come up. These areasync tasks that borrow from their environment, and they would come in handy in a lot of situations. Last year the standard library stabilized thread::scope which allows synchronous threads to do this. You could imagine a similar API, but with async: asyncfn fanout(data: &Vec){task::scope(|s|{// Spawn subtasks to run in parallel. | |
| | | | |
without.boats
|
|
| | | | | ||
| | | | |
tokio.rs
|
|
| | | Tokio is a runtime for writing reliable asynchronous applications with Rust. It provides async I/O, networking, scheduling, timers, and more. | ||