Struct Builder
pub struct Builder<'a> { /* private fields */ }
tokio_unstable and crate feature rt and crate feature tracing only.Factory which is used to configure the properties of a new task.
Note: This is an unstable API. The public API of this type may break in 1.x releases. See the documentation on unstable features for details.
Methods can be chained in order to configure it.
Currently, there is only one configuration option:
-
name, which specifies an associated name for the task
There are three types of task that can be spawned from a Builder:
-
spawn_localfor executing notSendfutures -
spawnfor executingSendfutures on the runtime -
spawn_blockingfor executing blocking code in the blocking thread pool.
Example
use tokio::net::{TcpListener, TcpStream};
use std::io;
async fn process(socket: TcpStream) {
// ...
}
#[tokio::main]
async fn main() -> io::Result<()> {
let listener = TcpListener::bind("127.0.0.1:8080").await?;
loop {
let (socket, _) = listener.accept().await?;
tokio::task::Builder::new()
.name("tcp connection handler")
.spawn(async move {
// Process each socket concurrently.
process(socket).await
})?;
}
}Implementations
impl<'a> Builder<'a>
pub fn new() -> Self
Creates a new task builder.
pub fn spawn<Fut>(self, future: Fut) -> Result<JoinHandle<Fut::Output>>
Spawns a task with this builder’s settings on the current runtime.
Panics
This method panics if called outside of a Tokio runtime.
See task::spawn for more details.
pub fn spawn_on<Fut>( self, future: Fut, handle: &Handle, ) -> Result<JoinHandle<Fut::Output>>
Spawn a task with this builder’s settings on the provided runtime handle.
See Handle::spawn for more details.
pub fn spawn_local<Fut>(self, future: Fut) -> Result<JoinHandle<Fut::Output>>
Spawns a !Send task on the current LocalSet or LocalRuntime with this builder’s settings.
The spawned future will be run on the same thread that called spawn_local. This may only be called from the context of a local task set or a LocalRuntime.
Panics
This function panics if called outside of a local task set or a LocalRuntime.
See task::spawn_local for more details.
pub fn spawn_local_on<Fut>( self, future: Fut, local_set: &LocalSet, ) -> Result<JoinHandle<Fut::Output>>
Spawns !Send a task on the provided LocalSet with this builder’s settings.
See LocalSet::spawn_local for more details.
pub fn spawn_blocking<Function, Output>( self, function: Function, ) -> Result<JoinHandle<Output>>
Spawns blocking code on the blocking threadpool.
Panics
This method panics if called outside of a Tokio runtime.
See task::spawn_blocking for more details.
pub fn spawn_blocking_on<Function, Output>( self, function: Function, handle: &Handle, ) -> Result<JoinHandle<Output>>
Spawns blocking code on the provided runtime handle’s blocking threadpool.
See Handle::spawn_blocking for more details.
Trait Implementations
Auto Trait Implementations
impl<'a> Freeze for Builder<'a>
impl<'a> RefUnwindSafe for Builder<'a>
impl<'a> Send for Builder<'a>
impl<'a> Sync for Builder<'a>
impl<'a> Unpin for Builder<'a>
impl<'a> UnsafeUnpin for Builder<'a>
impl<'a> UnwindSafe for Builder<'a>
Blanket Implementations
impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/task/struct.Builder.html