monitor_unotify: fix deadline handling
When remaining is calculated exactly at deadline the timeout might be delayed by kMinWakeupMsec
PiperOrigin-RevId: 706676622
Change-Id: I369ac8ace4c2a3a26b11fc2c2a796d6948006c79
diff --git a/sandboxed_api/sandbox2/monitor_unotify.cc b/sandboxed_api/sandbox2/monitor_unotify.cc
index e52030c..4b25fc0 100644
--- a/sandboxed_api/sandbox2/monitor_unotify.cc
+++ b/sandboxed_api/sandbox2/monitor_unotify.cc
@@ -296,7 +296,7 @@
while (result_.final_status() == Result::UNSET) {
int64_t deadline = deadline_millis_.load(std::memory_order_relaxed);
absl::Duration remaining = absl::FromUnixMillis(deadline) - absl::Now();
- if (deadline != 0 && remaining < absl::ZeroDuration()) {
+ if (deadline != 0 && remaining <= absl::ZeroDuration()) {
VLOG(1) << "Sandbox process hit timeout due to the walltime timer";
timed_out_ = true;
MaybeGetStackTrace(process_.main_pid, Result::TIMEOUT);