pub struct AtomicManualClock<P = Timestamp> { /* private fields */ }Expand description
A clock set and moved by hand, shared across threads.
A thread that reads a point another set or moved the clock to also sees what that thread
wrote before. It is not Clone, since a copy would fork time: share it by reference or
Arc.
§Examples
use std::thread;
use t2t_clock::{AtomicManualClock, Clock};
use t2t_core::{Timedelta, Uptime};
let clock = AtomicManualClock::new(Uptime::from_secs(1));
thread::scope(|scope| {
scope.spawn(|| clock.advance(Timedelta::SECOND));
});
assert_eq!(clock.now(), Uptime::from_secs(2), "the other thread's move");Implementations§
Source§impl<P: TimePoint> AtomicManualClock<P>
impl<P: TimePoint> AtomicManualClock<P>
Trait Implementations§
Source§impl<P: TimePoint> Clock for AtomicManualClock<P>
impl<P: TimePoint> Clock for AtomicManualClock<P>
Source§impl<P> Debug for AtomicManualClock<P>
impl<P> Debug for AtomicManualClock<P>
Auto Trait Implementations§
impl<P = Timestamp> !Freeze for AtomicManualClock<P>
impl<P> RefUnwindSafe for AtomicManualClock<P>
impl<P> Send for AtomicManualClock<P>
impl<P> Sync for AtomicManualClock<P>
impl<P> Unpin for AtomicManualClock<P>
impl<P> UnsafeUnpin for AtomicManualClock<P>
impl<P> UnwindSafe for AtomicManualClock<P>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more