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

Function _mi_segment_page_abandon

3rd/mimalloc-2.0.9/src/segment.c:1249–1264  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1247}
1248
1249void _mi_segment_page_abandon(mi_page_t* page, mi_segments_tld_t* tld) {
1250 mi_assert(page != NULL);
1251 mi_assert_internal(mi_page_thread_free_flag(page)==MI_NEVER_DELAYED_FREE);
1252 mi_assert_internal(mi_page_heap(page) == NULL);
1253 mi_segment_t* segment = _mi_page_segment(page);
1254
1255 mi_assert_expensive(mi_segment_is_valid(segment,tld));
1256 segment->abandoned++;
1257
1258 _mi_stat_increase(&tld->stats->pages_abandoned, 1);
1259 mi_assert_internal(segment->abandoned <= segment->used);
1260 if (segment->used == segment->abandoned) {
1261 // all pages are abandoned, abandon the entire segment
1262 mi_segment_abandon(segment, tld);
1263 }
1264}
1265
1266/* -----------------------------------------------------------
1267 Reclaim abandoned pages

Callers 1

_mi_page_abandonFunction · 0.85

Calls 6

mi_page_thread_free_flagFunction · 0.85
mi_page_heapFunction · 0.85
_mi_page_segmentFunction · 0.85
mi_segment_is_validFunction · 0.85
_mi_stat_increaseFunction · 0.85
mi_segment_abandonFunction · 0.85

Tested by

no test coverage detected