REQUIRE(ISC_STATS_VALID(stats));
REQUIRE(counter < stats->ncounters);
- atomic_fetch_add_explicit(&stats->counters[counter], 1,
- memory_order_relaxed);
+ atomic_fetch_add_relaxed(&stats->counters[counter], 1);
}
void
isc_stats_decrement(isc_stats_t *stats, isc_statscounter_t counter) {
REQUIRE(ISC_STATS_VALID(stats));
REQUIRE(counter < stats->ncounters);
-
- atomic_fetch_sub_explicit(&stats->counters[counter], 1,
- memory_order_relaxed);
+ atomic_fetch_sub_release(&stats->counters[counter], 1);
}
void
REQUIRE(ISC_STATS_VALID(stats));
for (i = 0; i < stats->ncounters; i++) {
- uint32_t counter = atomic_load_explicit(&stats->counters[i],
- memory_order_relaxed);
+ uint32_t counter = atomic_load_acquire(&stats->counters[i]);
if ((options & ISC_STATSDUMP_VERBOSE) == 0 && counter == 0) {
continue;
}
REQUIRE(ISC_STATS_VALID(stats));
REQUIRE(counter < stats->ncounters);
- atomic_store_explicit(&stats->counters[counter], val,
- memory_order_relaxed);
+ atomic_store_release(&stats->counters[counter], val);
}
void
REQUIRE(counter < stats->ncounters);
isc_statscounter_t curr_value =
- atomic_load_relaxed(&stats->counters[counter]);
+ atomic_load_acquire(&stats->counters[counter]);
do {
if (curr_value >= value) {
break;
}
- } while (!atomic_compare_exchange_strong(&stats->counters[counter],
- &curr_value, value));
+ } while (!atomic_compare_exchange_weak_acq_rel(
+ &stats->counters[counter], &curr_value, value));
}
isc_statscounter_t
REQUIRE(ISC_STATS_VALID(stats));
REQUIRE(counter < stats->ncounters);
- return (atomic_load_explicit(&stats->counters[counter],
- memory_order_relaxed));
+ return (atomic_load_acquire(&stats->counters[counter]));
}