mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
8251910: Shenandoah: Handshake threads between weak-roots and reset phases
Reviewed-by: rkennke
This commit is contained in:
parent
9871f3a27a
commit
f797e19e3d
4 changed files with 31 additions and 2 deletions
|
@ -424,6 +424,12 @@ void ShenandoahControlThread::service_concurrent_normal_cycle(GCCause::Cause cau
|
|||
|
||||
// Update references freed up collection set, kick the cleanup to reclaim the space.
|
||||
heap->entry_cleanup_complete();
|
||||
} else {
|
||||
// Concurrent weak/strong root flags are unset concurrently. We depend on updateref GC safepoints
|
||||
// to ensure the changes are visible to all mutators before gc cycle is completed.
|
||||
// In case of no evacuation, updateref GC safepoints are skipped. Therefore, we will need
|
||||
// to perform thread handshake to ensure their consistences.
|
||||
heap->entry_rendezvous_roots();
|
||||
}
|
||||
|
||||
// Cycle is complete
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue