pub struct Executor<T, const N: usize> { /* private fields */ }Expand description
Task executor singleton
Implementations§
source§impl<T, const N: usize> Executor<T, N>
impl<T, const N: usize> Executor<T, N>
sourcepub fn take() -> Option<Self>
pub fn take() -> Option<Self>
use async_hal::Executor;
let executor = Executor::<(), 1>::take().unwrap();
// Only one executor can exist at a time
assert!(Executor::<(), 2>::take().is_none());
// After dropping the executor, we can create a new one
drop(executor);
assert!(Executor::<(), 2>::take().is_some());sourcepub fn run(&mut self) -> Option<T::Output>where
T: Future + Unpin,
pub fn run(&mut self) -> Option<T::Output>where T: Future + Unpin,
Poll each pending task, returning the output of the first that’s ready.
If none are ready, this function returns None.
Otherwise this method should be called until no tasks are left pending.
pub fn split(&mut self) -> (Spawner<'_, T, N>, Runner<'_, T, N>)
Trait Implementations§
Auto Trait Implementations§
impl<T, const N: usize> !RefUnwindSafe for Executor<T, N>
impl<T, const N: usize> Send for Executor<T, N>where T: Send,
impl<T, const N: usize> !Sync for Executor<T, N>
impl<T, const N: usize> Unpin for Executor<T, N>where T: Unpin,
impl<T, const N: usize> UnwindSafe for Executor<T, N>where T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more