< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp
Print this page
rev 58087 : 8239354: Shenandoah: minor enhancements to traversal GC
*** 569,580 ****
preclean_weak_refs();
}
}
void ShenandoahTraversalGC::final_traversal_collection() {
- _heap->make_parsable(true);
-
if (!_heap->cancelled_gc()) {
#if COMPILER2_OR_JVMCI
DerivedPointerTable::clear();
#endif
ShenandoahGCPhase phase_work(ShenandoahPhaseTimings::final_traversal_gc_work);
--- 569,578 ----
*** 604,613 ****
--- 602,616 ----
// No more marking expected
_heap->set_concurrent_traversal_in_progress(false);
_heap->mark_complete_marking_context();
+ // A rare case, TLAB/GCLAB is initialized from an empty region without
+ // any live data, the region can be trashed and may be uncommitted in later code,
+ // that results the TLAB/GCLAB not usable. Retire them here.
+ _heap->make_parsable(true);
+
_heap->parallel_cleaning(false);
fixup_roots();
_heap->set_has_forwarded_objects(false);
< prev index next >