]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Avoid an extra atomic_load() call
authorOndřej Surý <ondrej@sury.org>
Wed, 6 Nov 2019 09:49:28 +0000 (10:49 +0100)
committerOndřej Surý <ondrej@sury.org>
Wed, 6 Nov 2019 10:30:36 +0000 (11:30 +0100)
lib/isc/stats.c

index 44cc2d4e1bc648af03979ffecfcb0adcd8a1aaf0..4f7f283b2fc45ab35ac355d46a33a7b6f27890d2 100644 (file)
@@ -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));