mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-07 15:59:32 +03:00
merge from dev
This commit is contained in:
commit
83af243bca
4 changed files with 4 additions and 5 deletions
|
@ -125,7 +125,7 @@ void* _mi_arena_alloc(size_t size, bool commit, bool allow_large, mi_arena_
|
||||||
void* _mi_arena_alloc_aligned(size_t size, size_t alignment, size_t align_offset, bool commit, bool allow_large, mi_arena_id_t req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld);
|
void* _mi_arena_alloc_aligned(size_t size, size_t alignment, size_t align_offset, bool commit, bool allow_large, mi_arena_id_t req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld);
|
||||||
bool _mi_arena_memid_is_suitable(mi_memid_t memid, mi_arena_id_t request_arena_id);
|
bool _mi_arena_memid_is_suitable(mi_memid_t memid, mi_arena_id_t request_arena_id);
|
||||||
bool _mi_arena_contains(const void* p);
|
bool _mi_arena_contains(const void* p);
|
||||||
void _mi_arena_collect(bool force_purge, mi_stats_t* stats);
|
void _mi_arenas_collect(bool force_purge, mi_stats_t* stats);
|
||||||
void _mi_arena_unsafe_destroy_all(mi_stats_t* stats);
|
void _mi_arena_unsafe_destroy_all(mi_stats_t* stats);
|
||||||
|
|
||||||
bool _mi_arena_segment_clear_abandoned(mi_segment_t* segment);
|
bool _mi_arena_segment_clear_abandoned(mi_segment_t* segment);
|
||||||
|
|
|
@ -711,7 +711,7 @@ static void mi_arenas_unsafe_destroy(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Purge the arenas; if `force_purge` is true, amenable parts are purged even if not yet expired
|
// Purge the arenas; if `force_purge` is true, amenable parts are purged even if not yet expired
|
||||||
void _mi_arena_collect(bool force_purge, mi_stats_t* stats) {
|
void _mi_arenas_collect(bool force_purge, mi_stats_t* stats) {
|
||||||
mi_arenas_try_purge(force_purge, force_purge /* visit all? */, stats);
|
mi_arenas_try_purge(force_purge, force_purge /* visit all? */, stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -719,7 +719,7 @@ void _mi_arena_collect(bool force_purge, mi_stats_t* stats) {
|
||||||
// for dynamic libraries that are unloaded and need to release all their allocated memory.
|
// for dynamic libraries that are unloaded and need to release all their allocated memory.
|
||||||
void _mi_arena_unsafe_destroy_all(mi_stats_t* stats) {
|
void _mi_arena_unsafe_destroy_all(mi_stats_t* stats) {
|
||||||
mi_arenas_unsafe_destroy();
|
mi_arenas_unsafe_destroy();
|
||||||
_mi_arena_collect(true /* force purge */, stats); // purge non-owned arenas
|
_mi_arenas_collect(true /* force purge */, stats); // purge non-owned arenas
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is a pointer inside any of our arenas?
|
// Is a pointer inside any of our arenas?
|
||||||
|
|
|
@ -168,7 +168,7 @@ static void mi_heap_collect_ex(mi_heap_t* heap, mi_collect_t collect)
|
||||||
}
|
}
|
||||||
|
|
||||||
// collect arenas (this is program wide so don't force purges on abandonment of threads)
|
// collect arenas (this is program wide so don't force purges on abandonment of threads)
|
||||||
_mi_arena_collect(collect == MI_FORCE /* force purge? */, &heap->tld->stats);
|
_mi_arenas_collect(collect == MI_FORCE /* force purge? */, &heap->tld->stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _mi_heap_collect_abandon(mi_heap_t* heap) {
|
void _mi_heap_collect_abandon(mi_heap_t* heap) {
|
||||||
|
|
|
@ -591,7 +591,6 @@ static void mi_segment_try_purge(mi_segment_t* segment, bool force, mi_stats_t*
|
||||||
// called from `mi_heap_collect_ex`
|
// called from `mi_heap_collect_ex`
|
||||||
// this can be called per-page so it is important that try_purge has fast exit path
|
// this can be called per-page so it is important that try_purge has fast exit path
|
||||||
void _mi_segment_collect(mi_segment_t* segment, bool force, mi_segments_tld_t* tld) {
|
void _mi_segment_collect(mi_segment_t* segment, bool force, mi_segments_tld_t* tld) {
|
||||||
MI_UNUSED(force); MI_UNUSED(tld);
|
|
||||||
mi_segment_try_purge(segment, force, tld->stats);
|
mi_segment_try_purge(segment, force, tld->stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue