pub struct SpawnToken<S> { /* private fields */ }
Expand description
Token to spawn a newly-created task in an executor.
When calling a task function (like #[embassy_executor::task] async fn my_task() { ... }
), the returned
value is a SpawnToken
that represents an instance of the task, ready to spawn. You must
then spawn it into an executor, typically with Spawner::spawn()
.
The generic parameter S
determines whether the task can be spawned in executors
in other threads or not. If S: Send
, it can, which allows spawning it into a SendSpawner
.
If not, it can’t, so it can only be spawned into the current thread’s executor, with Spawner
.
§Panics
Dropping a SpawnToken instance panics. You may not “abort” spawning a task in this way. Once you’ve invoked a task function and obtained a SpawnToken, you must spawn it.
Implementations§
Source§impl<S> SpawnToken<S>
impl<S> SpawnToken<S>
Sourcepub fn new_failed() -> Self
pub fn new_failed() -> Self
Return a SpawnToken that represents a failed spawn.
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for SpawnToken<S>
impl<S> !RefUnwindSafe for SpawnToken<S>
impl<S> !Send for SpawnToken<S>
impl<S> !Sync for SpawnToken<S>
impl<S> Unpin for SpawnToken<S>
impl<S> !UnwindSafe for SpawnToken<S>
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 4 bytes