diff options
| author | Kaspar Schleiser <[email protected]> | 2023-06-16 12:59:23 +0200 |
|---|---|---|
| committer | Kaspar Schleiser <[email protected]> | 2023-06-16 12:59:23 +0200 |
| commit | 54fc933932e9f8e510331401820b57ba32d8ade3 (patch) | |
| tree | c68ade267d052278bf1759b8de849b40cc7bb578 /embassy-executor/src/arch | |
| parent | 64e3310e64ea31923980418e654f07c9a862e54c (diff) | |
embassy-executor: introduce `InterruptExecutor::spawner()`
Diffstat (limited to 'embassy-executor/src/arch')
| -rw-r--r-- | embassy-executor/src/arch/cortex_m.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/embassy-executor/src/arch/cortex_m.rs b/embassy-executor/src/arch/cortex_m.rs index d6a55c4c7..94c8134d6 100644 --- a/embassy-executor/src/arch/cortex_m.rs +++ b/embassy-executor/src/arch/cortex_m.rs | |||
| @@ -205,5 +205,20 @@ mod interrupt { | |||
| 205 | 205 | ||
| 206 | executor.spawner().make_send() | 206 | executor.spawner().make_send() |
| 207 | } | 207 | } |
| 208 | |||
| 209 | /// Get a SendSpawner for this executor | ||
| 210 | /// | ||
| 211 | /// This returns a [`SendSpawner`] you can use to spawn tasks on this | ||
| 212 | /// executor. | ||
| 213 | /// | ||
| 214 | /// This MUST only be called on an executor that has already been spawned. | ||
| 215 | /// The function will panic otherwise. | ||
| 216 | pub fn spawner(&'static self) -> crate::SendSpawner { | ||
| 217 | if !self.started.load(Ordering::Acquire) { | ||
| 218 | panic!("InterruptExecutor::spawner() called on uninitialized executor."); | ||
| 219 | } | ||
| 220 | let executor = unsafe { (&*self.executor.get()).assume_init_ref() }; | ||
| 221 | executor.spawner().make_send() | ||
| 222 | } | ||
| 208 | } | 223 | } |
| 209 | } | 224 | } |
