mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 18:44:38 +02:00
8242082: Shenandoah: Purge Traversal mode
Reviewed-by: shade
This commit is contained in:
parent
c09b0a7793
commit
553ea1e891
82 changed files with 25 additions and 3158 deletions
|
@ -223,19 +223,15 @@ void ShenandoahRootScanner<ITR>::strong_roots_do(uint worker_id, OopClosure* oop
|
|||
template <typename ITR>
|
||||
void ShenandoahRootScanner<ITR>::roots_do(uint worker_id, OopClosure* oops, CLDClosure* clds, CodeBlobClosure* code, ThreadClosure *tc) {
|
||||
assert(!ShenandoahSafepoint::is_at_shenandoah_safepoint() ||
|
||||
!ShenandoahHeap::heap()->unload_classes() ||
|
||||
ShenandoahHeap::heap()->is_traversal_mode(),
|
||||
"Expect class unloading or traversal when Shenandoah cycle is running");
|
||||
!ShenandoahHeap::heap()->unload_classes(),
|
||||
"Expect class unloading when Shenandoah cycle is running");
|
||||
ResourceMark rm;
|
||||
|
||||
_serial_roots.oops_do(oops, worker_id);
|
||||
_vm_roots.oops_do(oops, worker_id);
|
||||
|
||||
if (clds != NULL) {
|
||||
_cld_roots.cld_do(clds, worker_id);
|
||||
} else {
|
||||
assert(ShenandoahHeap::heap()->is_concurrent_traversal_in_progress(), "Only possible with traversal GC");
|
||||
}
|
||||
assert(clds != NULL, "Only possible with CLD closure");
|
||||
_cld_roots.cld_do(clds, worker_id);
|
||||
|
||||
// With ShenandoahConcurrentScanCodeRoots, we avoid scanning the entire code cache here,
|
||||
// and instead do that in concurrent phase under the relevant lock. This saves init mark
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue