pub(super) struct ThreadClockSet {
pub(super) clock: VClock,
fence_acquire: VClock,
fence_release: VClock,
pub(super) write_seqcst: VClock,
pub(super) read_seqcst: VClock,
}
Expand description
The current set of vector clocks describing the state of a thread, contains the happens-before clock and additional metadata to model atomic fence operations.
Fields§
§clock: VClock
The increasing clock representing timestamps that happen-before this thread.
fence_acquire: VClock
The set of timestamps that will happen-before this thread once it performs an acquire fence.
fence_release: VClock
The last timestamp of happens-before relations that have been released by this thread by a release fence.
write_seqcst: VClock
Timestamps of the last SC write performed by each thread, updated when this thread performs an SC fence. This is never acquired into the thread’s clock, it just limits which old writes can be seen in weak memory emulation.
read_seqcst: VClock
Timestamps of the last SC fence performed by each thread, updated when this thread performs an SC read. This is never acquired into the thread’s clock, it just limits which old writes can be seen in weak memory emulation.
Implementations§
Source§impl ThreadClockSet
impl ThreadClockSet
Sourcefn apply_release_fence(&mut self)
fn apply_release_fence(&mut self)
Apply the effects of a release fence to this set of thread vector clocks.
Sourcefn apply_acquire_fence(&mut self)
fn apply_acquire_fence(&mut self)
Apply the effects of an acquire fence to this set of thread vector clocks.
Sourcefn increment_clock(&mut self, index: VectorIdx, current_span: Span)
fn increment_clock(&mut self, index: VectorIdx, current_span: Span)
Increment the happens-before clock at a known index.
Sourcefn join_with(&mut self, other: &ThreadClockSet)
fn join_with(&mut self, other: &ThreadClockSet)
Join the happens-before clock with that of another thread, used to model thread join operations.
Trait Implementations§
Source§impl Clone for ThreadClockSet
impl Clone for ThreadClockSet
Source§fn clone(&self) -> ThreadClockSet
fn clone(&self) -> ThreadClockSet
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ThreadClockSet
impl Debug for ThreadClockSet
Source§impl Default for ThreadClockSet
impl Default for ThreadClockSet
Source§fn default() -> ThreadClockSet
fn default() -> ThreadClockSet
Auto Trait Implementations§
impl Freeze for ThreadClockSet
impl RefUnwindSafe for ThreadClockSet
impl Send for ThreadClockSet
impl Sync for ThreadClockSet
impl Unpin for ThreadClockSet
impl UnwindSafe for ThreadClockSet
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 320 bytes