aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2020-10-31 22:36:45 +0100
committerDario Nieuwenhuis <[email protected]>2020-10-31 22:36:45 +0100
commit76196c424a762ac053c89a9e25652fe975f4d458 (patch)
treeed4922f9cdaf9fe92c033d19644882e51da63429
parent9dea5035b9047a00a31615f897dabd2e538a5019 (diff)
Make Executor non-Send to close run() safety hole.
-rw-r--r--embassy/src/executor/executor.rs3
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 @@
1use core::cell::Cell; 1use core::cell::Cell;
2use core::cell::UnsafeCell; 2use core::cell::UnsafeCell;
3use core::future::Future; 3use core::future::Future;
4use core::marker::PhantomData;
4use core::mem; 5use core::mem;
5use core::mem::MaybeUninit; 6use core::mem::MaybeUninit;
6use core::pin::Pin; 7use core::pin::Pin;
@@ -241,6 +242,7 @@ impl Drop for SpawnToken {
241pub struct Executor { 242pub 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
246impl Executor { 248impl 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