aboutsummaryrefslogtreecommitdiff
path: root/embassy-time/src/queue_generic.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-time/src/queue_generic.rs')
-rw-r--r--embassy-time/src/queue_generic.rs12
1 files changed, 5 insertions, 7 deletions
diff --git a/embassy-time/src/queue_generic.rs b/embassy-time/src/queue_generic.rs
index 20ae7e6cc..0f67d9dbb 100644
--- a/embassy-time/src/queue_generic.rs
+++ b/embassy-time/src/queue_generic.rs
@@ -2,8 +2,7 @@ use core::cell::RefCell;
2use core::cmp::{min, Ordering}; 2use core::cmp::{min, Ordering};
3use core::task::Waker; 3use core::task::Waker;
4 4
5use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex; 5use critical_section::Mutex;
6use embassy_sync::blocking_mutex::Mutex;
7use heapless::Vec; 6use heapless::Vec;
8 7
9use crate::driver::{allocate_alarm, set_alarm, set_alarm_callback, AlarmHandle}; 8use crate::driver::{allocate_alarm, set_alarm, set_alarm_callback, AlarmHandle};
@@ -129,7 +128,7 @@ impl InnerQueue {
129} 128}
130 129
131struct Queue { 130struct Queue {
132 inner: Mutex<CriticalSectionRawMutex, RefCell<Option<InnerQueue>>>, 131 inner: Mutex<RefCell<Option<InnerQueue>>>,
133} 132}
134 133
135impl Queue { 134impl Queue {
@@ -140,8 +139,8 @@ impl Queue {
140 } 139 }
141 140
142 fn schedule_wake(&'static self, at: Instant, waker: &Waker) { 141 fn schedule_wake(&'static self, at: Instant, waker: &Waker) {
143 self.inner.lock(|inner| { 142 critical_section::with(|cs| {
144 let mut inner = inner.borrow_mut(); 143 let mut inner = self.inner.borrow_ref_mut(cs);
145 144
146 if inner.is_none() {} 145 if inner.is_none() {}
147 146
@@ -159,8 +158,7 @@ impl Queue {
159 } 158 }
160 159
161 fn handle_alarm(&self) { 160 fn handle_alarm(&self) {
162 self.inner 161 critical_section::with(|cs| self.inner.borrow_ref_mut(cs).as_mut().unwrap().handle_alarm())
163 .lock(|inner| inner.borrow_mut().as_mut().unwrap().handle_alarm());
164 } 162 }
165 163
166 fn handle_alarm_callback(ctx: *mut ()) { 164 fn handle_alarm_callback(ctx: *mut ()) {