diff --git a/src/page.c b/src/page.c index 03b24932..9a32b1d3 100644 --- a/src/page.c +++ b/src/page.c @@ -740,10 +740,11 @@ void _mi_deferred_free(mi_heap_t* heap, bool force) { if (!heap->tld->recurse) { heap->tld->recurse = true; if (deferred_free != NULL) { + // first we invoke global deferred free function (if it is defined). deferred_free(force, heap->tld->heartbeat, mi_atomic_load_ptr_relaxed(void,&deferred_arg)); } if (heap->deferred_free != NULL) { - // TODO: Should heap->deferred_free_arg be an atomic load? + // invoke deferred free function that is defined to do deferred free on specific heap instance. (heap->deferred_free)(heap, force, heap->tld->heartbeat, heap->deferred_free_arg); } heap->tld->recurse = false;