diff --git a/src/coreclr/gc/gc.cpp b/src/coreclr/gc/gc.cpp index a85d28eb6a7396..a3ee93325a64cd 100644 --- a/src/coreclr/gc/gc.cpp +++ b/src/coreclr/gc/gc.cpp @@ -22634,6 +22634,8 @@ void gc_heap::garbage_collect_pm_full_gc() void gc_heap::garbage_collect (int n) { + gc_pause_mode saved_settings_pause_mode = settings.pause_mode; + //reset the number of alloc contexts alloc_contexts_used = 0; @@ -23039,7 +23041,7 @@ void gc_heap::garbage_collect (int n) #endif //MULTIPLE_HEAPS done: - if (settings.pause_mode == pause_no_gc) + if (saved_settings_pause_mode == pause_no_gc) allocate_for_no_gc_after_gc(); }