From ba41f5a63fa8b6efc475a8901c12f31baa288fc7 Mon Sep 17 00:00:00 2001
From: Craig Tiller <ctiller@google.com>
Date: Fri, 14 Jun 2024 19:52:19 -0700
Subject: [PATCH] x

---
 src/core/lib/resource_quota/periodic_update.cc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/core/lib/resource_quota/periodic_update.cc b/src/core/lib/resource_quota/periodic_update.cc
index b4874fea1da..a722f2c568f 100644
--- a/src/core/lib/resource_quota/periodic_update.cc
+++ b/src/core/lib/resource_quota/periodic_update.cc
@@ -56,8 +56,9 @@ bool PeriodicUpdate::MaybeEndPeriod(absl::FunctionRef<void(Duration)> f) {
     // Store the remainder left. Note that updates_remaining_ may have been
     // decremented by another thread whilst we performed the above calculations:
     // we simply discard those decrements.
-    updates_remaining_.store(better_guess - expected_updates_per_period_,
-                             std::memory_order_release);
+    auto remaining = better_guess - expected_updates_per_period_;
+    expected_updates_per_period_ = better_guess;
+    updates_remaining_.store(remaining, std::memory_order_release);
     // Not quite done, return, try for longer.
     return false;
   }