From a458a0703153f17ae9170ea88a38348ebd290388 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Tue, 15 Oct 2019 19:12:05 -0500 Subject: [PATCH] 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. --- src/cyccnt.rs | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/cyccnt.rs b/src/cyccnt.rs index 1c215606ef..86969cb1a3 100644 --- a/src/cyccnt.rs +++ b/src/cyccnt.rs @@ -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 } } }