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. 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_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
sourceimpl<'a> Builder<'a>
impl<'a> Builder<'a>
sourcepub 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,
Spawns a task on the executor.
See task::spawn
for
more details.
sourcepub 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,
Spawns a task on the current thread.
See task::spawn_local
for more details.
sourcepub 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,
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> Send for Builder<'a>
impl<'a> Sync for Builder<'a>
impl<'a> Unpin for Builder<'a>
impl<'a> UnwindSafe for Builder<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn 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;
T: Future, type Output = <T as Future>::Output;
sourcefn 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;
T: Future, type Output = <T as Future>::Output;
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn 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>,
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn 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;
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more