diff --git a/lib/isc/stats.c b/lib/isc/stats.c index 44cc2d4e1bc648af03979ffecfcb0adcd8a1aaf0..4f7f283b2fc45ab35ac355d46a33a7b6f27890d2 100644 --- a/lib/isc/stats.c +++ b/lib/isc/stats.c @@ -157,15 +157,12 @@ void isc_stats_update_if_greater(isc_stats_t *stats, REQUIRE(ISC_STATS_VALID(stats)); REQUIRE(counter < stats->ncounters); - isc_statscounter_t curr_value; - + isc_statscounter_t curr_value = + atomic_load_relaxed(&stats->counters[counter]); do { - curr_value = atomic_load_explicit(&stats->counters[counter], - memory_order_relaxed); if (curr_value >= value) { break; } - } while (!atomic_compare_exchange_strong(&stats->counters[counter], &curr_value, value));