File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -23670,6 +23670,16 @@ void gc_heap::garbage_collect (int n)
23670
23670
STRESS_HEAP_ARG(n)
23671
23671
);
23672
23672
23673
+ if (settings.condemned_generation != max_generation)
23674
+ {
23675
+ // do more BGCs
23676
+ if (((VolatileLoadWithoutBarrier (&settings.gc_index) % 5) == 0) && (!gc_heap::background_running_p ()))
23677
+ {
23678
+ settings.condemned_generation = max_generation;
23679
+ should_do_blocking_collection = FALSE;
23680
+ }
23681
+ }
23682
+
23673
23683
STRESS_LOG1(LF_GCROOTS|LF_GC|LF_GCALLOC, LL_INFO10,
23674
23684
"condemned generation num: %d\n", settings.condemned_generation);
23675
23685
@@ -36784,6 +36794,12 @@ void gc_heap::recover_bgc_settings()
36784
36794
36785
36795
void gc_heap::allow_fgc()
36786
36796
{
36797
+ // lengthen the BGC CM phase
36798
+ if (cm_in_progress)
36799
+ {
36800
+ GCToOSInterface::YieldThread (0);
36801
+ }
36802
+
36787
36803
assert (bgc_thread == GCToEEInterface::GetThread());
36788
36804
bool bToggleGC = false;
36789
36805
You can’t perform that action at this time.
0 commit comments