diff options
| author | Tyler <[email protected]> | 2023-09-29 20:03:31 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-09-29 20:03:31 -0600 |
| commit | c52320f467c64a4944ed7df72fe7cca6a2b77564 (patch) | |
| tree | cb14d9f1a3f222542db0e1e0764c23cf01b098a3 /embassy-executor/src/raw | |
| parent | f033089625b4883f9b8811f5c291292529f66767 (diff) | |
| parent | 95b3d9eb3b3657de3d7bc9c04f8fb83eae901640 (diff) | |
Merge pull request #4 from embassy-rs/main
Pull latest from embassy main
Diffstat (limited to 'embassy-executor/src/raw')
| -rw-r--r-- | embassy-executor/src/raw/mod.rs | 2 | ||||
| -rw-r--r-- | embassy-executor/src/raw/util.rs | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/embassy-executor/src/raw/mod.rs b/embassy-executor/src/raw/mod.rs index c1d82e18a..6d2c1c18a 100644 --- a/embassy-executor/src/raw/mod.rs +++ b/embassy-executor/src/raw/mod.rs | |||
| @@ -203,7 +203,7 @@ impl<F: Future + 'static> AvailableTask<F> { | |||
| 203 | fn initialize_impl<S>(self, future: impl FnOnce() -> F) -> SpawnToken<S> { | 203 | fn initialize_impl<S>(self, future: impl FnOnce() -> F) -> SpawnToken<S> { |
| 204 | unsafe { | 204 | unsafe { |
| 205 | self.task.raw.poll_fn.set(Some(TaskStorage::<F>::poll)); | 205 | self.task.raw.poll_fn.set(Some(TaskStorage::<F>::poll)); |
| 206 | self.task.future.write(future()); | 206 | self.task.future.write_in_place(future); |
| 207 | 207 | ||
| 208 | let task = TaskRef::new(self.task); | 208 | let task = TaskRef::new(self.task); |
| 209 | 209 | ||
diff --git a/embassy-executor/src/raw/util.rs b/embassy-executor/src/raw/util.rs index e2e8f4df8..c46085e45 100644 --- a/embassy-executor/src/raw/util.rs +++ b/embassy-executor/src/raw/util.rs | |||
| @@ -17,8 +17,9 @@ impl<T> UninitCell<T> { | |||
| 17 | &mut *self.as_mut_ptr() | 17 | &mut *self.as_mut_ptr() |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | pub unsafe fn write(&self, val: T) { | 20 | #[inline(never)] |
| 21 | ptr::write(self.as_mut_ptr(), val) | 21 | pub unsafe fn write_in_place(&self, func: impl FnOnce() -> T) { |
| 22 | ptr::write(self.as_mut_ptr(), func()) | ||
| 22 | } | 23 | } |
| 23 | 24 | ||
| 24 | pub unsafe fn drop_in_place(&self) { | 25 | pub unsafe fn drop_in_place(&self) { |
