if (!need_calculate_minor_collection_allowance)
return;
- if (!*major_collector.have_swept) {
+ if (!major_collector.have_finished_sweeping ()) {
if (overwrite)
minor_collection_allowance = MIN_MINOR_COLLECTION_ALLOWANCE;
return;
SGEN_LOG (1, "Allowance: %ld bytes", (long)minor_collection_allowance);
}
- if (major_collector.have_computed_minor_collection_allowance)
- major_collector.have_computed_minor_collection_allowance ();
+ if (major_collector.free_swept_blocks)
+ major_collector.free_swept_blocks ();
need_calculate_minor_collection_allowance = FALSE;
}
gboolean
sgen_memgov_try_alloc_space (mword size, int space)
{
- if (sgen_memgov_available_free_space () < size)
+ if (sgen_memgov_available_free_space () < size) {
+ SGEN_ASSERT (4, !sgen_is_worker_thread (mono_native_thread_id_get ()), "Memory shouldn't run out in worker thread");
return FALSE;
+ }
SGEN_ATOMIC_ADD_P (allocated_heap, size);
mono_runtime_resource_check_limit (MONO_RESOURCE_GC_HEAP, allocated_heap);