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: 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 fence.
fence_seqcst: VClock
Timestamps of the last SC fence performed by each thread, updated when this thread performs an SC fence
write_seqcst: VClock
Timestamps of the last SC write performed by each thread, updated when this thread performs an SC fence
read_seqcst: VClock
Timestamps 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
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for ThreadClockSet
impl Debug for ThreadClockSet
sourceimpl Default for ThreadClockSet
impl Default for ThreadClockSet
sourcefn default() -> ThreadClockSet
fn default() -> ThreadClockSet
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 Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
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: 192 bytes