+ if (sgen_concurrent_collection_in_progress ()) {
+ heap_size = get_heap_size ();
+
+ if (heap_size <= major_collection_trigger_size)
+ return FALSE;
+
+ /* We allow the heap to grow an additional third of the allowance during a concurrent collection */
+ if ((heap_size - major_collection_trigger_size) >
+ (major_collection_trigger_size
+ * (SGEN_DEFAULT_ALLOWANCE_HEAP_SIZE_RATIO / (SGEN_DEFAULT_ALLOWANCE_HEAP_SIZE_RATIO + 1))
+ * SGEN_DEFAULT_CONCURRENT_HEAP_ALLOWANCE_RATIO)) {
+ return TRUE;
+ }