MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / _mi_heap_set_default_direct

Function _mi_heap_set_default_direct

3rd/mimalloc-2.0.9/src/init.c:459–483  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

457}
458
459void _mi_heap_set_default_direct(mi_heap_t* heap) {
460 mi_assert_internal(heap != NULL);
461 #if defined(MI_TLS_SLOT)
462 mi_tls_slot_set(MI_TLS_SLOT,heap);
463 #elif defined(MI_TLS_PTHREAD_SLOT_OFS)
464 *mi_tls_pthread_heap_slot() = heap;
465 #elif defined(MI_TLS_PTHREAD)
466 // we use _mi_heap_default_key
467 #else
468 _mi_heap_default = heap;
469 #endif
470
471 // ensure the default heap is passed to `_mi_thread_done`
472 // setting to a non-NULL value also ensures `mi_thread_done` is called.
473 #if defined(_WIN32) && defined(MI_SHARED_LIB)
474 // nothing to do as it is done in DllMain
475 #elif defined(_WIN32) && !defined(MI_SHARED_LIB)
476 mi_assert_internal(mi_fls_key != 0);
477 FlsSetValue(mi_fls_key, heap);
478 #elif defined(MI_USE_PTHREADS)
479 if (_mi_heap_default_key != (pthread_key_t)(-1)) { // can happen during recursive invocation on freeBSD
480 pthread_setspecific(_mi_heap_default_key, heap);
481 }
482 #endif
483}
484
485
486// --------------------------------------------------------

Callers 5

_mi_heap_initFunction · 0.85
_mi_heap_doneFunction · 0.85
mi_heap_freeFunction · 0.85
mi_heap_set_defaultFunction · 0.85

Calls 2

mi_tls_slot_setFunction · 0.85
mi_tls_pthread_heap_slotFunction · 0.85

Tested by

no test coverage detected