Struct tokio_util::task::LocalPoolHandle  
source · [−]pub struct LocalPoolHandle { /* private fields */ }rt only.Expand description
A handle to a local pool, used for spawning !Send tasks.
Implementations
sourceimpl LocalPoolHandle
 
impl LocalPoolHandle
sourcepub fn new(pool_size: usize) -> LocalPoolHandle
 
pub fn new(pool_size: usize) -> LocalPoolHandle
Create a new pool of threads to handle !Send tasks. Spawn tasks onto this
pool via LocalPoolHandle::spawn_pinned.
Panics
Panics if the pool size is less than one.
sourcepub fn spawn_pinned<F, Fut>(&self, create_task: F) -> JoinHandle<Fut::Output> where
    F: FnOnce() -> Fut,
    F: Send + 'static,
    Fut: Future + 'static,
    Fut::Output: Send + 'static, 
 
pub fn spawn_pinned<F, Fut>(&self, create_task: F) -> JoinHandle<Fut::Output> where
    F: FnOnce() -> Fut,
    F: Send + 'static,
    Fut: Future + 'static,
    Fut::Output: Send + 'static, 
Spawn a task onto a worker thread and pin it there so it can’t be moved
off of the thread. Note that the future is not Send, but the
FnOnce which creates it is.
Examples
use std::rc::Rc;
use tokio_util::task::LocalPoolHandle;
#[tokio::main]
async fn main() {
    // Create the local pool
    let pool = LocalPoolHandle::new(1);
    // Spawn a !Send future onto the pool and await it
    let output = pool
        .spawn_pinned(|| {
            // Rc is !Send + !Sync
            let local_data = Rc::new("test");
            // This future holds an Rc, so it is !Send
            async move { local_data.to_string() }
        })
        .await
        .unwrap();
    assert_eq!(output, "test");
}Trait Implementations
sourceimpl Clone for LocalPoolHandle
 
impl Clone for LocalPoolHandle
sourcefn clone(&self) -> LocalPoolHandle
 
fn clone(&self) -> LocalPoolHandle
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
Auto Trait Implementations
impl !RefUnwindSafe for LocalPoolHandle
impl Send for LocalPoolHandle
impl Sync for LocalPoolHandle
impl Unpin for LocalPoolHandle
impl !UnwindSafe for LocalPoolHandle
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>
 
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
    T: Clone, 
 
impl<T> ToOwned for T where
    T: Clone, 
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
 
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
 
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
    S: Into<Dispatch>, 
 
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
    S: Into<Dispatch>, 
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
 
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more