Expand description
A scoped tokio Runtime that can be used to create Scopes which can spawn futures which
can access stack data. That is, the futures spawned by the Scope do not require the 'static
lifetime bound. This can be done safely by ensuring that the Scope doesn’t exit until all
spawned futures have finished executing. Be aware, that when a Scope exits it will block
until every future spawned by the Scope completes. Therefore, one should take caution when
created scopes within an asynchronous context, such as from within another spawned future.
§Example
#[tokio::main]
async fn main() {
let mut v = String::from("Hello");
tokio_scoped::scope(|scope| {
// Use the scope to spawn the future.
scope.spawn(async {
v.push('!');
});
});
// The scope won't exit until all spawned futures are complete.
assert_eq!(v.as_str(), "Hello!");
}See also crossbeam::scope
Structs§
- Scope
- Scope
Builder - Struct used to build scopes from a borrowed
Handle. Generally users should use thescopedfunction instead of buildingScopeBuilderinstances directly.
Functions§
- scope
- Creates a
Scopeusing the current tokio runtime and calls thescopemethod with the provided future - scoped
- Borrows a
Handleto the tokioRuntimeto construct aScopeBuilderwhich can be used to create a scope.