diff --git a/src/heap.c b/src/heap.c index a3aaaf6b..58f006e3 100644 --- a/src/heap.c +++ b/src/heap.c @@ -59,7 +59,8 @@ static bool mi_heap_page_is_valid(mi_heap_t* heap, mi_page_queue_t* pq, mi_page_ MI_UNUSED(pq); mi_assert_internal(mi_page_heap(page) == heap); mi_segment_t* segment = _mi_page_segment(page); - mi_assert_internal(segment->thread_id == heap->thread_id); + uintptr_t thread_id = __atomic_load_n(&segment->thread_id, __ATOMIC_RELAXED); + mi_assert_internal(thread_id == heap->thread_id); mi_assert_expensive(_mi_page_is_valid(page)); return true; }