8224508: Shenandoah: Need to update thread roots in final mark for piggyback ref update cycle
Reviewed-by: shade, rkennke
This commit is contained in:
parent
d3ccef96e5
commit
6beb19a361
@ -1505,9 +1505,13 @@ void ShenandoahHeap::op_final_mark() {
|
|||||||
if (!cancelled_gc()) {
|
if (!cancelled_gc()) {
|
||||||
concurrent_mark()->finish_mark_from_roots(/* full_gc = */ false);
|
concurrent_mark()->finish_mark_from_roots(/* full_gc = */ false);
|
||||||
|
|
||||||
|
if (has_forwarded_objects()) {
|
||||||
// Degen may be caused by failed evacuation of roots
|
// Degen may be caused by failed evacuation of roots
|
||||||
if (is_degenerated_gc_in_progress() && has_forwarded_objects()) {
|
if (is_degenerated_gc_in_progress()) {
|
||||||
concurrent_mark()->update_roots(ShenandoahPhaseTimings::degen_gc_update_roots);
|
concurrent_mark()->update_roots(ShenandoahPhaseTimings::degen_gc_update_roots);
|
||||||
|
} else {
|
||||||
|
concurrent_mark()->update_thread_roots(ShenandoahPhaseTimings::update_roots);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ShenandoahVerify) {
|
if (ShenandoahVerify) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user