SpawnBlocking

Trait SpawnBlocking 

Source
pub trait SpawnBlocking<R>
where R: Send + 'static,
{ // Required methods fn spawn_blocking<F>(&self, f: F) -> BlockingHandle<R> where F: FnOnce() -> R + Send + 'static, Self: Sized; fn spawn_blocking_dyn( &self, f: Box<dyn FnOnce() -> R + Send>, ) -> BlockingHandle<R> ; }
Expand description

Indicate the executor can provide a threadpool for blocking operations. There is two methods of this trait. One of them requires boxing the closure and the other is not object safe.

Required Methods§

Source

fn spawn_blocking<F>(&self, f: F) -> BlockingHandle<R>
where F: FnOnce() -> R + Send + 'static, Self: Sized,

Runs the provided closure on a thread where blocking is acceptable.

Source

fn spawn_blocking_dyn( &self, f: Box<dyn FnOnce() -> R + Send>, ) -> BlockingHandle<R>

Runs the provided closure on a thread where blocking is acceptable. This part of the trait is object safe but your closure must be boxed and you cannot have a return value.

Implementations on Foreign Types§

Source§

impl<R, T> SpawnBlocking<R> for &T
where T: SpawnBlocking<R>, R: Send + 'static,

Source§

fn spawn_blocking<F>(&self, f: F) -> BlockingHandle<R>
where F: FnOnce() -> R + Send + 'static, T: Sized,

Source§

fn spawn_blocking_dyn( &self, f: Box<dyn FnOnce() -> R + Send>, ) -> BlockingHandle<R>

Source§

impl<R, T> SpawnBlocking<R> for &mut T
where T: SpawnBlocking<R>, R: Send + 'static,

Source§

fn spawn_blocking<F>(&self, f: F) -> BlockingHandle<R>
where F: FnOnce() -> R + Send + 'static, T: Sized,

Source§

fn spawn_blocking_dyn( &self, f: Box<dyn FnOnce() -> R + Send>, ) -> BlockingHandle<R>

Source§

impl<R, T> SpawnBlocking<R> for Box<T>
where T: SpawnBlocking<R>, R: Send + 'static,

Source§

fn spawn_blocking<F>(&self, f: F) -> BlockingHandle<R>
where F: FnOnce() -> R + Send + 'static, T: Sized,

Source§

fn spawn_blocking_dyn( &self, f: Box<dyn FnOnce() -> R + Send>, ) -> BlockingHandle<R>

Source§

impl<R, T> SpawnBlocking<R> for Rc<T>
where T: SpawnBlocking<R>, R: Send + 'static,

Source§

fn spawn_blocking<F>(&self, f: F) -> BlockingHandle<R>
where F: FnOnce() -> R + Send + 'static, T: Sized,

Source§

fn spawn_blocking_dyn( &self, f: Box<dyn FnOnce() -> R + Send>, ) -> BlockingHandle<R>

Source§

impl<R, T> SpawnBlocking<R> for Arc<T>
where T: SpawnBlocking<R>, R: Send + 'static,

Source§

fn spawn_blocking<F>(&self, f: F) -> BlockingHandle<R>
where F: FnOnce() -> R + Send + 'static, T: Sized,

Source§

fn spawn_blocking_dyn( &self, f: Box<dyn FnOnce() -> R + Send>, ) -> BlockingHandle<R>

Implementors§

Source§

impl<R: Send + 'static> SpawnBlocking<R> for TokioTp