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

Function mi_abandoned_visited_push

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

Push on the visited list

Source from the content-addressed store, hash-verified

1096
1097// Push on the visited list
1098static void mi_abandoned_visited_push(mi_segment_t* segment) {
1099 mi_assert_internal(segment->thread_id == 0);
1100 mi_assert_internal(mi_atomic_load_ptr_relaxed(mi_segment_t,&segment->abandoned_next) == NULL);
1101 mi_assert_internal(segment->next == NULL);
1102 mi_assert_internal(segment->used > 0);
1103 mi_segment_t* anext = mi_atomic_load_ptr_relaxed(mi_segment_t, &abandoned_visited);
1104 do {
1105 mi_atomic_store_ptr_release(mi_segment_t, &segment->abandoned_next, anext);
1106 } while (!mi_atomic_cas_ptr_weak_release(mi_segment_t, &abandoned_visited, &anext, segment));
1107 mi_atomic_increment_relaxed(&abandoned_visited_count);
1108}
1109
1110// Move the visited list to the abandoned list.
1111static bool mi_abandoned_visited_revisit(void)

Callers 2

mi_segment_try_reclaimFunction · 0.85
_mi_abandoned_collectFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected