#[repr(C)]pub struct ClockErrorBound {
pub disruption_marker: u64,
pub clock_disruption_support_enabled: bool,
/* private fields */
}
Expand description
Structure that holds the ClockErrorBound data captured at a specific point in time and valid until a subsequent point in time.
The ClockErrorBound structure supports calculating the actual bound on clock error at any time,
using its now()
method. The internal fields are not meant to be accessed directly.
Note that the timestamps in between which this ClockErrorBound data is valid are captured using a CLOCK_MONOTONIC_COARSE clock. The monotonic clock id is required to correctly measure the duration during which clock drift possibly accrues, and avoid events when the clock is set, smeared or affected by leap seconds.
The structure is shared across the Shared Memory segment and has a C representation to enforce this specific layout.
Fields§
§disruption_marker: u64
Disruption marker.
This value is incremented (by an unspecified delta) each time the clock has been disrupted. This count value is specific to a particular VM/EC2 instance.
clock_disruption_support_enabled: bool
Clock disruption support enabled flag.
This indicates whether or not the ClockBound daemon was started with a configuration that supports detecting clock disruptions.
Implementations§
Source§impl ClockErrorBound
impl ClockErrorBound
Sourcepub fn new(
as_of: TimeSpec,
void_after: TimeSpec,
bound_nsec: i64,
disruption_marker: u64,
max_drift_ppb: u32,
clock_status: ClockStatus,
clock_disruption_support_enabled: bool,
) -> ClockErrorBound
pub fn new( as_of: TimeSpec, void_after: TimeSpec, bound_nsec: i64, disruption_marker: u64, max_drift_ppb: u32, clock_status: ClockStatus, clock_disruption_support_enabled: bool, ) -> ClockErrorBound
Create a new ClockErrorBound struct.
Sourcepub fn now(&self) -> Result<(TimeSpec, TimeSpec, ClockStatus), ShmError>
pub fn now(&self) -> Result<(TimeSpec, TimeSpec, ClockStatus), ShmError>
The ClockErrorBound equivalent of clock_gettime(), but with bound on accuracy.
Returns a pair of (earliest, latest) timespec between which current time exists. The interval width is twice the clock error bound (ceb) such that: (earliest, latest) = ((now - ceb), (now + ceb)) The function also returns a clock status to assert that the clock is being synchronized, or free-running, or …
Trait Implementations§
Source§impl Clone for ClockErrorBound
impl Clone for ClockErrorBound
Source§fn clone(&self) -> ClockErrorBound
fn clone(&self) -> ClockErrorBound
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more