aboutsummaryrefslogtreecommitdiff
path: root/rtic-time/src
diff options
context:
space:
mode:
Diffstat (limited to 'rtic-time/src')
-rw-r--r--rtic-time/src/lib.rs4
-rw-r--r--rtic-time/src/monotonic.rs14
2 files changed, 11 insertions, 7 deletions
diff --git a/rtic-time/src/lib.rs b/rtic-time/src/lib.rs
index 6254bca0..9cd20d5f 100644
--- a/rtic-time/src/lib.rs
+++ b/rtic-time/src/lib.rs
@@ -133,7 +133,7 @@ impl<Mono: Monotonic> TimerQueue<Mono> {
let head = self.queue.pop_if(|head| {
release_at = Some(head.release_at);
- let should_pop = Mono::should_dequeue_check(head.release_at);
+ let should_pop = Mono::now() >= head.release_at;
head.was_popped.store(should_pop, Ordering::Relaxed);
should_pop
@@ -147,7 +147,7 @@ impl<Mono: Monotonic> TimerQueue<Mono> {
Mono::enable_timer();
Mono::set_compare(instant);
- if Mono::should_dequeue_check(instant) {
+ if Mono::now() >= instant {
// The time for the next instant passed while handling it,
// continue dequeueing
continue;
diff --git a/rtic-time/src/monotonic.rs b/rtic-time/src/monotonic.rs
index 0c0d6f35..0e8d2b83 100644
--- a/rtic-time/src/monotonic.rs
+++ b/rtic-time/src/monotonic.rs
@@ -36,11 +36,15 @@ pub trait Monotonic {
/// queue in RTIC checks this.
fn set_compare(instant: Self::Instant);
- /// Override for the dequeue check, override with timers that have bugs.
- ///
- /// E.g. nRF52 RTCs needs to be dequeued if the time is within 4 ticks.
- fn should_dequeue_check(release_at: Self::Instant) -> bool {
- <Self as Monotonic>::now() >= release_at
+ /// This method used to be required by an errata workaround
+ /// for the nrf52 family, but it has been disabled as the
+ /// workaround was erroneous.
+ #[deprecated(
+ since = "1.2.0",
+ note = "this method is erroneous and has been disabled"
+ )]
+ fn should_dequeue_check(_: Self::Instant) -> bool {
+ panic!("This method should not be used as it is erroneous.")
}
/// Clear the compare interrupt flag.