Fixed a data race quic_alarm.cc.

Tested with 10K runs:
http://sponge2/b5abb08b-b006-465b-943b-f7fc477c5aed
(The test failure is from a different reason)

PiperOrigin-RevId: 394799609
diff --git a/quic/core/quic_alarm.cc b/quic/core/quic_alarm.cc
index 67e0a74..22e2e67 100644
--- a/quic/core/quic_alarm.cc
+++ b/quic/core/quic_alarm.cc
@@ -4,6 +4,8 @@
 
 #include "quic/core/quic_alarm.h"
 
+#include <atomic>
+
 #include "quic/platform/api/quic_bug_tracker.h"
 #include "quic/platform/api/quic_flag_utils.h"
 #include "quic/platform/api/quic_flags.h"
@@ -17,9 +19,9 @@
 QuicAlarm::~QuicAlarm() {
   if (GetQuicRestartFlag(quic_alarm_add_permanent_cancel) && IsSet()) {
     QUIC_CODE_COUNT(quic_alarm_not_cancelled_in_dtor);
-    static uint64_t hit_count = 0;
-    ++hit_count;
-    if ((hit_count & (hit_count - 1)) == 0) {
+    static std::atomic<uint64_t> hit_count{0};
+    uint64_t old_count = hit_count.fetch_add(1, std::memory_order_relaxed);
+    if ((old_count & (old_count + 1)) == 0) {
       QUIC_LOG(ERROR) << "QuicAlarm not cancelled at destruction. "
                       << QuicStackTrace();
     }