diff --git a/src/segment-cache.c b/src/segment-cache.c index 9b838cef..93908c8f 100644 --- a/src/segment-cache.c +++ b/src/segment-cache.c @@ -118,6 +118,7 @@ static mi_decl_noinline void mi_commit_mask_decommit(mi_commit_mask_t* cmask, vo static mi_decl_noinline void mi_segment_cache_purge(bool force, mi_os_tld_t* tld) { MI_UNUSED(tld); + if (!mi_option_is_enabled(mi_option_allow_decommit)) return; mi_msecs_t now = _mi_clock_now(); size_t purged = 0; const size_t max_visits = (force ? MI_CACHE_MAX /* visit all */ : MI_CACHE_FIELDS /* probe at most N (=16) slots */); diff --git a/src/segment.c b/src/segment.c index 037b1316..e9d30510 100644 --- a/src/segment.c +++ b/src/segment.c @@ -569,8 +569,7 @@ static void mi_segment_perhaps_decommit(mi_segment_t* segment, uint8_t* p, size_ mi_commit_mask_t cmask; mi_commit_mask_create_intersect(&segment->commit_mask, &mask, &cmask); // only decommit what is committed; span_free may try to decommit more mi_commit_mask_set(&segment->decommit_mask, &cmask); - // segment->decommit_expire = _mi_clock_now() + mi_option_get(mi_option_decommit_delay); - mi_msecs_t now = _mi_clock_now(); + mi_msecs_t now = _mi_clock_now(); if (segment->decommit_expire == 0) { // no previous decommits, initialize now mi_assert_internal(mi_commit_mask_is_empty(&segment->decommit_mask));