From 0b799404966751fa91558863e11dc87cbd70f50f Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Thu, 7 Apr 2022 15:12:59 -0700 Subject: [PATCH] connection delay injector: cap delay by deadline (#29349) --- test/cpp/end2end/connection_delay_injector.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/cpp/end2end/connection_delay_injector.cc b/test/cpp/end2end/connection_delay_injector.cc index 630101084a8..06d85023609 100644 --- a/test/cpp/end2end/connection_delay_injector.cc +++ b/test/cpp/end2end/connection_delay_injector.cc @@ -51,10 +51,10 @@ class InjectedDelay { deadline_(deadline) { memcpy(&address_, addr, sizeof(grpc_resolved_address)); GRPC_CLOSURE_INIT(&timer_callback_, TimerCallback, this, nullptr); - auto duration = g_delay.load(); - deadline_ += duration; - grpc_timer_init(&timer_, grpc_core::ExecCtx::Get()->Now() + duration, - &timer_callback_); + grpc_core::Duration duration = g_delay.load(); + grpc_core::Timestamp now = grpc_core::ExecCtx::Get()->Now(); + duration = std::min(duration, deadline_ - now); + grpc_timer_init(&timer_, now + duration, &timer_callback_); } ~InjectedDelay() { grpc_channel_args_destroy(channel_args_); }