aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/src/raw/timer_queue.rs
diff options
context:
space:
mode:
authorRasmus Melchior Jacobsen <[email protected]>2023-03-29 14:10:33 +0200
committerRasmus Melchior Jacobsen <[email protected]>2023-03-29 14:10:33 +0200
commita0d089536a213ec093ed5e440e3d9a1e8fc3e9a2 (patch)
tree27e154937e469fc0868616a1d6718314f19961db /embassy-executor/src/raw/timer_queue.rs
parent15e17472207fe587c38ba6cd2c2214ae4e88ee32 (diff)
parent0bbc3a3d81f243b0249bf231a5b6cd53772b28e0 (diff)
Merge branch 'flash-regions' of https://github.com/rmja/embassy into flash-regions
Diffstat (limited to 'embassy-executor/src/raw/timer_queue.rs')
-rw-r--r--embassy-executor/src/raw/timer_queue.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/embassy-executor/src/raw/timer_queue.rs b/embassy-executor/src/raw/timer_queue.rs
index 57d6d3cda..dc71c95b1 100644
--- a/embassy-executor/src/raw/timer_queue.rs
+++ b/embassy-executor/src/raw/timer_queue.rs
@@ -1,28 +1,32 @@
1use core::cell::Cell;
2use core::cmp::min; 1use core::cmp::min;
3 2
4use atomic_polyfill::Ordering; 3use atomic_polyfill::Ordering;
5use embassy_time::Instant; 4use embassy_time::Instant;
6 5
7use super::{TaskRef, STATE_TIMER_QUEUED}; 6use super::{TaskRef, STATE_TIMER_QUEUED};
7use crate::raw::util::SyncUnsafeCell;
8 8
9pub(crate) struct TimerQueueItem { 9pub(crate) struct TimerQueueItem {
10 next: Cell<Option<TaskRef>>, 10 next: SyncUnsafeCell<Option<TaskRef>>,
11} 11}
12 12
13impl TimerQueueItem { 13impl TimerQueueItem {
14 pub const fn new() -> Self { 14 pub const fn new() -> Self {
15 Self { next: Cell::new(None) } 15 Self {
16 next: SyncUnsafeCell::new(None),
17 }
16 } 18 }
17} 19}
18 20
19pub(crate) struct TimerQueue { 21pub(crate) struct TimerQueue {
20 head: Cell<Option<TaskRef>>, 22 head: SyncUnsafeCell<Option<TaskRef>>,
21} 23}
22 24
23impl TimerQueue { 25impl TimerQueue {
24 pub const fn new() -> Self { 26 pub const fn new() -> Self {
25 Self { head: Cell::new(None) } 27 Self {
28 head: SyncUnsafeCell::new(None),
29 }
26 } 30 }
27 31
28 pub(crate) unsafe fn update(&self, p: TaskRef) { 32 pub(crate) unsafe fn update(&self, p: TaskRef) {