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

Function _mi_page_reclaim

3rd/mimalloc-2.0.9/src/page.c:246–259  ·  view source on GitHub ↗

called from segments when reclaiming abandoned pages

Source from the content-addressed store, hash-verified

244
245// called from segments when reclaiming abandoned pages
246void _mi_page_reclaim(mi_heap_t* heap, mi_page_t* page) {
247 mi_assert_expensive(mi_page_is_valid_init(page));
248
249 mi_assert_internal(mi_page_heap(page) == heap);
250 mi_assert_internal(mi_page_thread_free_flag(page) != MI_NEVER_DELAYED_FREE);
251 #if MI_HUGE_PAGE_ABANDON
252 mi_assert_internal(_mi_page_segment(page)->kind != MI_SEGMENT_HUGE);
253 #endif
254 mi_assert_internal(!page->is_reset);
255 // TODO: push on full queue immediately if it is full?
256 mi_page_queue_t* pq = mi_page_queue(heap, mi_page_block_size(page));
257 mi_page_queue_push(heap, pq, page);
258 mi_assert_expensive(_mi_page_is_valid(page));
259}
260
261// allocate a fresh page from a segment
262static mi_page_t* mi_page_fresh_alloc(mi_heap_t* heap, mi_page_queue_t* pq, size_t block_size, size_t page_alignment) {

Callers 1

mi_segment_reclaimFunction · 0.85

Calls 8

mi_page_is_valid_initFunction · 0.85
mi_page_heapFunction · 0.85
mi_page_thread_free_flagFunction · 0.85
_mi_page_segmentFunction · 0.85
mi_page_queueFunction · 0.85
mi_page_block_sizeFunction · 0.85
mi_page_queue_pushFunction · 0.85
_mi_page_is_validFunction · 0.85

Tested by

no test coverage detected