mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-23 20:22:51 +01:00
cyccnt::Instant: simplify the Send / Sync impl
originally the type was made `!Send` because it loses its meaning when send from one core to another but that was an incorrect use of the `Send` bound (the send operation makes the value incorrect but that doesn't cause memory unsafety on its own). So later the type was (explicitly) made `Send` again resulting in a convoluted implementation -- this commit simplifies things.
This commit is contained in:
parent
6207008884
commit
a458a07031
1 changed files with 2 additions and 13 deletions
|
@ -3,9 +3,7 @@
|
|||
use core::{
|
||||
cmp::Ordering,
|
||||
convert::{Infallible, TryInto},
|
||||
fmt,
|
||||
marker::PhantomData,
|
||||
ops,
|
||||
fmt, ops,
|
||||
};
|
||||
|
||||
use cortex_m::peripheral::DWT;
|
||||
|
@ -28,19 +26,13 @@ use crate::Fraction;
|
|||
#[derive(Clone, Copy, Eq, PartialEq)]
|
||||
pub struct Instant {
|
||||
inner: i32,
|
||||
_not_send_or_sync: PhantomData<*mut ()>,
|
||||
}
|
||||
|
||||
unsafe impl Sync for Instant {}
|
||||
|
||||
unsafe impl Send for Instant {}
|
||||
|
||||
impl Instant {
|
||||
/// Returns an instant corresponding to "now"
|
||||
pub fn now() -> Self {
|
||||
Instant {
|
||||
inner: DWT::get_cycle_count() as i32,
|
||||
_not_send_or_sync: PhantomData,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -222,9 +214,6 @@ impl crate::Monotonic for CYCCNT {
|
|||
}
|
||||
|
||||
fn zero() -> Instant {
|
||||
Instant {
|
||||
inner: 0,
|
||||
_not_send_or_sync: PhantomData,
|
||||
}
|
||||
Instant { inner: 0 }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue