*/
static void
mem_getstats(isc_mem_t *ctx, size_t size) {
- atomic_fetch_add_release(&ctx->inuse, size);
+ atomic_fetch_add_relaxed(&ctx->inuse, size);
}
/*!
*/
static void
mem_putstats(isc_mem_t *ctx, size_t size) {
- atomic_size_t s = atomic_fetch_sub_release(&ctx->inuse, size);
+ atomic_size_t s = atomic_fetch_sub_relaxed(&ctx->inuse, size);
INSIST(s >= size);
}
return (false);
}
- inuse = atomic_load_acquire(&ctx->inuse);
+ inuse = atomic_load_relaxed(&ctx->inuse);
if (inuse <= hiwater) {
return (false);
}
return (false);
}
- inuse = atomic_load_acquire(&ctx->inuse);
+ inuse = atomic_load_relaxed(&ctx->inuse);
if (inuse >= lowater) {
return (false);
}
REQUIRE(VALID_CONTEXT(ctx));
if (flag == ISC_MEM_LOWATER) {
- atomic_store(&ctx->hi_called, false);
+ atomic_store_release(&ctx->hi_called, false);
} else if (flag == ISC_MEM_HIWATER) {
- atomic_store(&ctx->hi_called, true);
+ atomic_store_release(&ctx->hi_called, true);
}
}
isc_mem_inuse(isc_mem_t *ctx) {
REQUIRE(VALID_CONTEXT(ctx));
- return (atomic_load_acquire(&ctx->inuse));
+ return (atomic_load_relaxed(&ctx->inuse));
}
void
if (oldwater == NULL) {
REQUIRE(water != NULL && lowater > 0);
- INSIST(atomic_load(&ctx->hi_water) == 0);
- INSIST(atomic_load(&ctx->lo_water) == 0);
+ INSIST(atomic_load_acquire(&ctx->hi_water) == 0);
+ INSIST(atomic_load_acquire(&ctx->lo_water) == 0);
ctx->water = water;
ctx->water_arg = water_arg;
- atomic_store(&ctx->hi_water, hiwater);
- atomic_store(&ctx->lo_water, lowater);
+ atomic_store_release(&ctx->hi_water, hiwater);
+ atomic_store_release(&ctx->lo_water, lowater);
return;
}
REQUIRE((water == oldwater && water_arg == oldwater_arg) ||
(water == NULL && water_arg == NULL && hiwater == 0));
- atomic_store(&ctx->hi_water, hiwater);
- atomic_store(&ctx->lo_water, lowater);
+ atomic_store_release(&ctx->hi_water, hiwater);
+ atomic_store_release(&ctx->lo_water, lowater);
if (atomic_load_acquire(&ctx->hi_called) &&
(atomic_load_acquire(&ctx->inuse) < lowater || lowater == 0U))