Struct embassy_executor::Spawner
source · pub struct Spawner { /* private fields */ }
Expand description
Handle to spawn tasks into an executor.
This Spawner can spawn any task (Send and non-Send ones), but it can only be used in the executor thread (it is not Send itself).
If you want to spawn tasks from another thread, use SendSpawner.
Implementations§
source§impl Spawner
impl Spawner
sourcepub async fn for_current_executor() -> Self
pub async fn for_current_executor() -> Self
Get a Spawner for the current executor.
This function is async
just to get access to the current async
context. It returns instantly, it does not block/yield.
§Panics
Panics if the current executor is not an Embassy executor.
sourcepub fn spawn<S>(&self, token: SpawnToken<S>) -> Result<(), SpawnError>
pub fn spawn<S>(&self, token: SpawnToken<S>) -> Result<(), SpawnError>
Spawn a task into an executor.
You obtain the token
by calling a task function (i.e. one marked with #[embassy_executor::task]
).
sourcepub fn must_spawn<S>(&self, token: SpawnToken<S>)
pub fn must_spawn<S>(&self, token: SpawnToken<S>)
sourcepub fn make_send(&self) -> SendSpawner
pub fn make_send(&self) -> SendSpawner
Convert this Spawner to a SendSpawner. This allows you to send the spawner to other threads, but the spawner loses the ability to spawn non-Send tasks.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Spawner
impl !RefUnwindSafe for Spawner
impl !Send for Spawner
impl !Sync for Spawner
impl Unpin for Spawner
impl !UnwindSafe for Spawner
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