aboutsummaryrefslogtreecommitdiff
path: root/rtic-monotonics/src
diff options
context:
space:
mode:
authorGravatar Finomnis <Finomnis@users.noreply.github.com> 2023-12-06 19:36:09 +0100
committerGravatar GitHub <noreply@github.com> 2023-12-06 18:36:09 +0000
commitbbed94528528fbfe53ed7baf9cc38ca012785d13 (patch)
tree45269ff41ff0007e2b405c5cbea2c3ba19928b46 /rtic-monotonics/src
parentf377471e440d8be0b2f9e9c8877ed015f62dc19e (diff)
downloadrtic-bbed94528528fbfe53ed7baf9cc38ca012785d13.tar.gz
rtic-bbed94528528fbfe53ed7baf9cc38ca012785d13.tar.zst
rtic-bbed94528528fbfe53ed7baf9cc38ca012785d13.zip
Fix race condition in `calculate_now` (#860)
* Fix race condition in calculate_now * Add changelog * Update changelog * Refine comment * More comment fixes
Diffstat (limited to 'rtic-monotonics/src')
-rw-r--r--rtic-monotonics/src/imxrt.rs2
-rw-r--r--rtic-monotonics/src/nrf/rtc.rs2
-rw-r--r--rtic-monotonics/src/nrf/timer.rs2
-rw-r--r--rtic-monotonics/src/stm32.rs2
4 files changed, 4 insertions, 4 deletions
diff --git a/rtic-monotonics/src/imxrt.rs b/rtic-monotonics/src/imxrt.rs
index ecf9129b..2299beac 100644
--- a/rtic-monotonics/src/imxrt.rs
+++ b/rtic-monotonics/src/imxrt.rs
@@ -212,7 +212,7 @@ macro_rules! make_timer {
let gpt = unsafe{ $timer::instance() };
Self::Instant::from_ticks(calculate_now(
- $period.load(Ordering::Relaxed),
+ || $period.load(Ordering::Relaxed),
|| ral::read_reg!(ral::gpt, gpt, CNT)
))
}
diff --git a/rtic-monotonics/src/nrf/rtc.rs b/rtic-monotonics/src/nrf/rtc.rs
index 643d8bdb..d425b114 100644
--- a/rtic-monotonics/src/nrf/rtc.rs
+++ b/rtic-monotonics/src/nrf/rtc.rs
@@ -224,7 +224,7 @@ macro_rules! make_rtc {
fn now() -> Self::Instant {
let rtc = unsafe { &*$rtc::PTR };
Self::Instant::from_ticks(calculate_now(
- $overflow.load(Ordering::Relaxed),
+ || $overflow.load(Ordering::Relaxed),
|| TimerValueU24(rtc.counter.read().bits())
))
}
diff --git a/rtic-monotonics/src/nrf/timer.rs b/rtic-monotonics/src/nrf/timer.rs
index 2f83f40b..7b760e4c 100644
--- a/rtic-monotonics/src/nrf/timer.rs
+++ b/rtic-monotonics/src/nrf/timer.rs
@@ -242,7 +242,7 @@ macro_rules! make_timer {
let timer = unsafe { &*$timer::PTR };
Self::Instant::from_ticks(calculate_now(
- $overflow.load(Ordering::Relaxed),
+ || $overflow.load(Ordering::Relaxed),
|| {
timer.tasks_capture[3].write(|w| unsafe { w.bits(1) });
timer.cc[3].read().bits()
diff --git a/rtic-monotonics/src/stm32.rs b/rtic-monotonics/src/stm32.rs
index 601196a3..68f95a25 100644
--- a/rtic-monotonics/src/stm32.rs
+++ b/rtic-monotonics/src/stm32.rs
@@ -234,7 +234,7 @@ macro_rules! make_timer {
fn now() -> Self::Instant {
Self::Instant::from_ticks(calculate_now(
- $overflow.load(Ordering::Relaxed),
+ || $overflow.load(Ordering::Relaxed),
|| $timer.cnt().read().cnt()
))
}