pub struct CurrentThread<P: Park = ParkThread> { /* private fields */ }
Expand description
Executes tasks on the current thread
Implementations§
Source§impl<P: Park> CurrentThread<P>
impl<P: Park> CurrentThread<P>
Sourcepub fn new_with_park(park: P) -> Self
pub fn new_with_park(park: P) -> Self
Create a new instance of CurrentThread
backed by the given park
handle.
Sourcepub fn is_idle(&self) -> bool
pub fn is_idle(&self) -> bool
Returns true
if the executor is currently idle.
An idle executor is defined by not currently having any spawned tasks.
Note that this method is inherently racy – if a future is spawned from a remote Handle
,
this method may return true
even though there are more futures to be executed.
Sourcepub fn spawn<F>(&mut self, future: F) -> &mut Self
pub fn spawn<F>(&mut self, future: F) -> &mut Self
Spawn the future on the executor.
This internally queues the future to be executed once run
is called.
Sourcepub fn block_on<F>(
&mut self,
future: F,
) -> Result<F::Item, BlockError<F::Error>>where
F: Future,
pub fn block_on<F>(
&mut self,
future: F,
) -> Result<F::Item, BlockError<F::Error>>where
F: Future,
Synchronously waits for the provided future
to complete.
This function can be used to synchronously block the current thread
until the provided future
has resolved either successfully or with an
error. The result of the future is then returned from this function
call.
Note that this function will also execute any spawned futures on the current thread, but will not block until these other spawned futures have completed.
The caller is responsible for ensuring that other spawned futures complete execution.
Sourcepub fn run(&mut self) -> Result<(), RunError>
pub fn run(&mut self) -> Result<(), RunError>
Run the executor to completion, blocking the thread until all spawned futures have completed.
Sourcepub fn run_timeout(&mut self, duration: Duration) -> Result<(), RunTimeoutError>
pub fn run_timeout(&mut self, duration: Duration) -> Result<(), RunTimeoutError>
Run the executor to completion, blocking the thread until all
spawned futures have completed or duration
time has elapsed.
Sourcepub fn turn(&mut self, duration: Option<Duration>) -> Result<Turn, TurnError>
pub fn turn(&mut self, duration: Option<Duration>) -> Result<Turn, TurnError>
Perform a single iteration of the event loop.
This function blocks the current thread even if the executor is idle.
Sourcepub fn enter<'a>(&'a mut self, enter: &'a mut Enter) -> Entered<'a, P>
pub fn enter<'a>(&'a mut self, enter: &'a mut Enter) -> Entered<'a, P>
Bind CurrentThread
instance with an execution context.
Sourcepub fn get_park_mut(&mut self) -> &mut P
pub fn get_park_mut(&mut self) -> &mut P
Returns a mutable reference to the underlying Park
instance.