In quicconnection::sendallpendingacks, update instead of set the ack alarm. protected by --gfe2_reloadable_flag_quic_update_ack_alarm_in_send_all_pending_acks.
PiperOrigin-RevId: 312510742
Change-Id: Ieec2e3ffee600202202f6719bf566d9e7ce29685
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 3519bbc..1ef3cf7 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -4043,7 +4043,13 @@
uber_received_packet_manager_.GetEarliestAckTimeout();
if (timeout.IsInitialized()) {
// If there are ACKs pending, re-arm ack alarm.
- ack_alarm_->Set(timeout);
+ if (update_ack_alarm_in_send_all_pending_acks_) {
+ QUIC_RELOADABLE_FLAG_COUNT(
+ quic_update_ack_alarm_in_send_all_pending_acks);
+ ack_alarm_->Update(timeout, kAlarmGranularity);
+ } else {
+ ack_alarm_->Set(timeout);
+ }
}
// Only try to bundle retransmittable data with ACK frame if default
// encryption level is forward secure.
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 87c049b..c1e95f3 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -1665,6 +1665,9 @@
const bool advance_ack_timeout_update_ =
GetQuicReloadableFlag(quic_advance_ack_timeout_update);
+
+ const bool update_ack_alarm_in_send_all_pending_acks_ =
+ GetQuicReloadableFlag(quic_update_ack_alarm_in_send_all_pending_acks);
};
} // namespace quic