From feea82fad5d472cf787c54455f147d86b219196f Mon Sep 17 00:00:00 2001 From: Per K Date: Mon, 17 Jun 2024 15:09:47 +0000 Subject: [PATCH] Fix issue with SchedulableNetworkBehavior::UpdateConfigAndReschedule returning negative delay MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the task queue is blocked, there is a risk that delay becomes negative. Therefore, use max of calculated time to next schedule and 0. Bug: webrtc:42224804 Change-Id: Ibae9000192d5042cf62b46d93e8364b58dae0d82 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354880 Reviewed-by: Björn Terelius Commit-Queue: Björn Terelius Commit-Queue: Per Kjellander Auto-Submit: Per Kjellander Cr-Commit-Position: refs/heads/main@{#42501} --- test/network/schedulable_network_behavior.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/network/schedulable_network_behavior.cc b/test/network/schedulable_network_behavior.cc index e64e7bd1f0..a3291d0886 100644 --- a/test/network/schedulable_network_behavior.cc +++ b/test/network/schedulable_network_behavior.cc @@ -117,9 +117,10 @@ TimeDelta SchedulableNetworkBehavior::UpdateConfigAndReschedule() { webrtc::TimeDelta time_since_first_sent_packet = reschedule_time - first_send_time_; if (next_schedule_index_ != 0) { - delay = webrtc::TimeDelta::Millis(schedule_.item()[next_schedule_index_] - .time_since_first_sent_packet_ms()) - - (time_since_first_sent_packet - wrap_time_delta_); + delay = std::max(TimeDelta::Millis(schedule_.item()[next_schedule_index_] + .time_since_first_sent_packet_ms()) - + (time_since_first_sent_packet - wrap_time_delta_), + TimeDelta::Zero()); } else if (!schedule_.has_repeat_schedule_after_last_ms()) { // No more schedule items. schedule_task_.Stop();