Struct miri::concurrency::data_race::ThreadClockSet
source · [−]pub(super) struct ThreadClockSet {
pub(super) clock: VClock,
fence_acquire: VClock,
fence_release: VClock,
pub(super) fence_seqcst: 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: VClockThe increasing clock representing timestamps that happen-before this thread.
fence_acquire: VClockThe set of timestamps that will happen-before this thread once it performs an acquire fence.
fence_release: VClockThe last timestamp of happens-before relations that have been released by this thread by a fence.
fence_seqcst: VClockTimestamps of the last SC fence performed by each thread, updated when this thread performs an SC fence
write_seqcst: VClockTimestamps of the last SC write performed by each thread, updated when this thread performs an SC fence
read_seqcst: VClockTimestamps of the last SC fence performed by each thread, updated when this thread performs an SC read
Implementations
sourceimpl 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)
fn increment_clock(&mut self, index: VectorIdx)
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
sourceimpl Clone for ThreadClockSet
impl Clone for ThreadClockSet
sourcefn clone(&self) -> ThreadClockSet
fn clone(&self) -> ThreadClockSet
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for ThreadClockSet
impl Debug for ThreadClockSet
sourceimpl Default for ThreadClockSet
impl Default for ThreadClockSet
sourcefn default() -> ThreadClockSet
fn default() -> ThreadClockSet
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl RefUnwindSafe for ThreadClockSet
impl Send for ThreadClockSet
impl Sync for ThreadClockSet
impl Unpin for ThreadClockSet
impl UnwindSafe for ThreadClockSet
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
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: 144 bytes