Emit log when overdue watchdog clears
Now that watchdog reports are emitted less frequently, it's helpful
to log when overdue watchdogs clear.
Test: keystore2_client_tests
Bug: 319563050
Change-Id: I5e24325b017174baafafe98af99ae3b6e43c2e19
diff --git a/keystore2/watchdog/src/lib.rs b/keystore2/watchdog/src/lib.rs
index ff05783..b4a1e0f 100644
--- a/keystore2/watchdog/src/lib.rs
+++ b/keystore2/watchdog/src/lib.rs
@@ -193,7 +193,30 @@
}
fn disarm(&mut self, index: Index) {
- self.records.remove(&index);
+ let result = self.records.remove(&index);
+ if let Some(record) = result {
+ let now = Instant::now();
+ let timeout_left = record.deadline.saturating_duration_since(now);
+ if timeout_left == Duration::new(0, 0) {
+ match &record.context {
+ Some(ctx) => log::info!(
+ "Watchdog complete for: {:?} {} Pending: {:?} Overdue {:?} for {:?}",
+ index.tid,
+ index.id,
+ record.started.elapsed(),
+ record.deadline.elapsed(),
+ ctx
+ ),
+ None => log::info!(
+ "Watchdog complete for: {:?} {} Pending: {:?} Overdue {:?}",
+ index.tid,
+ index.id,
+ record.started.elapsed(),
+ record.deadline.elapsed()
+ ),
+ }
+ }
+ }
}
fn arm(&mut self, index: Index, record: Record) {