Expand description
safe-async-scoped is a minimal wrapper around FuturesUnordered in the futures crate that simulates scoped tasks. Unlike async-scoped and even crossbeam-scoped etc, safe-async-scoped
- Is completely safe to use
- Has no
unsafecode in its implementation - Has no dependencies other than
futures - Is completely runtime-agnostic
Note that “tasks” spawned with safe-async-scoped will not be sent to the executor as separate tasks, and will thus only run on one thread. On the plus side, none of the futures have to be Send.
§Example
let listener = Async::new(TcpListener::bind("127.0.0.1:8080").unwrap()).unwrap();
let lala = String::from("hello");
{
let scope = Scope::new();
scope
.start(async {
loop {
let (client, _) = listener.accept().await.unwrap();
scope.spawn(async {
handle(client, &lala).await;
});
}
})
.await;
}Structs§
- Scope
- An opaque utility for spawning local tasks that has access to the scope that
Scopehas access to.