pub struct Builder<'a> { /* private fields */ }
tokio_unstable
and crate feature tracing
only.Expand description
Factory which is used to configure the properties of a new task.
Note: This is an [unstable API][unstable]. The public API of this type may break in 1.x releases. See [the documentation on unstable features][unstable] 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_local
for executing futures on the current threadspawn
for executingSend
futures on the runtimespawn_blocking
for 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
pub fn spawn<Fut>(self, future: Fut) -> JoinHandle<Fut::Output>ⓘNotable traits for JoinHandle<T>impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
where
Fut: Future + Send + 'static,
Fut::Output: Send + 'static,
pub fn spawn<Fut>(self, future: Fut) -> JoinHandle<Fut::Output>ⓘNotable traits for JoinHandle<T>impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
where
Fut: Future + Send + 'static,
Fut::Output: Send + 'static,
impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
Spawns a task on the executor.
See task::spawn
for
more details.
pub fn spawn_local<Fut>(self, future: Fut) -> JoinHandle<Fut::Output>ⓘNotable traits for JoinHandle<T>impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
where
Fut: Future + 'static,
Fut::Output: 'static,
pub fn spawn_local<Fut>(self, future: Fut) -> JoinHandle<Fut::Output>ⓘNotable traits for JoinHandle<T>impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
where
Fut: Future + 'static,
Fut::Output: 'static,
impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
Spawns a task on the current thread.
See task::spawn_local
for more details.
pub fn spawn_blocking<Function, Output>(
self,
function: Function
) -> JoinHandle<Output>ⓘNotable traits for JoinHandle<T>impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
where
Function: FnOnce() -> Output + Send + 'static,
Output: Send + 'static,
pub fn spawn_blocking<Function, Output>(
self,
function: Function
) -> JoinHandle<Output>ⓘNotable traits for JoinHandle<T>impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
where
Function: FnOnce() -> Output + Send + 'static,
Output: Send + 'static,
impl<T> Future for JoinHandle<T> type Output = Result<T, JoinError>;
Spawns blocking code on the blocking threadpool.
See task::spawn_blocking
for more details.
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for Builder<'a>
impl<'a> UnwindSafe for Builder<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more