diff options
| author | Dario Nieuwenhuis <[email protected]> | 2020-10-31 22:36:45 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2020-10-31 22:36:45 +0100 |
| commit | 76196c424a762ac053c89a9e25652fe975f4d458 (patch) | |
| tree | ed4922f9cdaf9fe92c033d19644882e51da63429 | |
| parent | 9dea5035b9047a00a31615f897dabd2e538a5019 (diff) | |
Make Executor non-Send to close run() safety hole.
| -rw-r--r-- | embassy/src/executor/executor.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/embassy/src/executor/executor.rs b/embassy/src/executor/executor.rs index 2f6bfad58..ff3a8517c 100644 --- a/embassy/src/executor/executor.rs +++ b/embassy/src/executor/executor.rs | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | use core::cell::Cell; | 1 | use core::cell::Cell; |
| 2 | use core::cell::UnsafeCell; | 2 | use core::cell::UnsafeCell; |
| 3 | use core::future::Future; | 3 | use core::future::Future; |
| 4 | use core::marker::PhantomData; | ||
| 4 | use core::mem; | 5 | use core::mem; |
| 5 | use core::mem::MaybeUninit; | 6 | use core::mem::MaybeUninit; |
| 6 | use core::pin::Pin; | 7 | use core::pin::Pin; |
| @@ -241,6 +242,7 @@ impl Drop for SpawnToken { | |||
| 241 | pub struct Executor { | 242 | pub struct Executor { |
| 242 | queue: Queue, | 243 | queue: Queue, |
| 243 | signal_fn: fn(), | 244 | signal_fn: fn(), |
| 245 | not_send: PhantomData<*mut ()>, | ||
| 244 | } | 246 | } |
| 245 | 247 | ||
| 246 | impl Executor { | 248 | impl Executor { |
| @@ -248,6 +250,7 @@ impl Executor { | |||
| 248 | Self { | 250 | Self { |
| 249 | queue: Queue::new(), | 251 | queue: Queue::new(), |
| 250 | signal_fn: signal_fn, | 252 | signal_fn: signal_fn, |
| 253 | not_send: PhantomData, | ||
| 251 | } | 254 | } |
| 252 | } | 255 | } |
| 253 | 256 | ||
