MCPcopy Create free account
hub / github.com/aws/clock-bound / handle_tick

Method handle_tick

clock-bound/src/daemon/clock_state.rs:209–229  ·  view source on GitHub ↗
(&mut self, now: tokio::time::Instant)

Source from the content-addressed store, hash-verified

207 }
208
209 fn handle_tick(&mut self, now: tokio::time::Instant) {
210 if let Some(parameters) = &self.clock_parameters {
211 self.clock_adjuster.handle_clock_parameters(now, parameters);
212
213 // Handle SHM1 (`ClockErrorboundV3`) first
214 let clockbound_clock = ClockBound::new(parameters.clone(), ReadTscImpl);
215 // Get the age of the `ClockParameters`, to determine if we're Synchronized or FreeRunning.
216 // Inherently, we can't be `Unknown` or `Disrupted` anymore if we've gotten any `ClockParameters`.
217 let clock_params_age_v3 = clockbound_clock.get_time() - parameters.time;
218 let clock_status_v3 =
219 ClockState::determine_clock_error_bound_v3_status(clock_params_age_v3);
220
221 self.state_writer
222 .handle_clock_parameters_shm1(parameters, clock_status_v3);
223
224 // Handle SHM0 (`ClockErrorboundV2`) after SHM1.
225 let clock_status_v2 = self.determine_clock_error_bound_v2_status(parameters);
226 self.state_writer
227 .handle_clock_parameters_shm0(parameters, clock_status_v2);
228 }
229 }
230
231 /// Handles `ClockParameters` passed out from the `ClockSyncAlgorithm` selector.
232 ///

Callers 2

Tested by

no test coverage detected