]> 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:29:35 +0000 (11:29 +0100)
lib/isc/stats.c

index a74b8488d88e7239ca7df756d8c9f5976b771cfd..34f12ada339667bf1426bcf42643f08ee6ca4bad 100644 (file)
@@ -159,15 +159,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));