< prev index next >
src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp
Print this page
*** 2443,2453 ****
}
assert(verification_mark_stack()->isEmpty(), "Should have been drained");
verify_work_stacks_empty();
VerifyCLDOopsCLDClosure verify_cld_oops(verification_mark_bm());
! ClassLoaderDataGraph::cld_oops_do(&verify_cld_oops);
// Marking completed -- now verify that each bit marked in
// verification_mark_bm() is also marked in markBitMap(); flag all
// errors by printing corresponding objects.
VerifyMarkedClosure vcl(markBitMap());
--- 2443,2453 ----
}
assert(verification_mark_stack()->isEmpty(), "Should have been drained");
verify_work_stacks_empty();
VerifyCLDOopsCLDClosure verify_cld_oops(verification_mark_bm());
! ClassLoaderDataGraph::cld_do(&verify_cld_oops);
// Marking completed -- now verify that each bit marked in
// verification_mark_bm() is also marked in markBitMap(); flag all
// errors by printing corresponding objects.
VerifyMarkedClosure vcl(markBitMap());
*** 4082,4092 ****
CMSTokenSyncWithLocks ts(true, freelistLock, bitMapLock());
// SSS: Add equivalent to ScanMarkedObjectsAgainCarefullyClosure::do_yield_check and should_abort_preclean?
// SSS: We should probably check if precleaning should be aborted, at suitable intervals?
PrecleanCLDClosure preclean_closure(cl);
! ClassLoaderDataGraph::cld_oops_do(&preclean_closure);
verify_work_stacks_empty();
verify_overflow_empty();
}
--- 4082,4092 ----
CMSTokenSyncWithLocks ts(true, freelistLock, bitMapLock());
// SSS: Add equivalent to ScanMarkedObjectsAgainCarefullyClosure::do_yield_check and should_abort_preclean?
// SSS: We should probably check if precleaning should be aborted, at suitable intervals?
PrecleanCLDClosure preclean_closure(cl);
! ClassLoaderDataGraph::cld_do(&preclean_closure);
verify_work_stacks_empty();
verify_overflow_empty();
}
*** 4446,4456 ****
_timer.reset();
_timer.start();
// Scan all classes that was dirtied during the concurrent marking phase.
RemarkCLDClosure remark_closure(&par_mrias_cl);
! ClassLoaderDataGraph::cld_oops_do(&remark_closure);
_timer.stop();
log_trace(gc, task)("Finished dirty CLD scanning work in %dth thread: %3.3f sec", worker_id, _timer.seconds());
}
--- 4446,4456 ----
_timer.reset();
_timer.start();
// Scan all classes that was dirtied during the concurrent marking phase.
RemarkCLDClosure remark_closure(&par_mrias_cl);
! ClassLoaderDataGraph::cld_do(&remark_closure);
_timer.stop();
log_trace(gc, task)("Finished dirty CLD scanning work in %dth thread: %3.3f sec", worker_id, _timer.seconds());
}
*** 4983,4993 ****
GCTraceTime(Trace, gc, phases) t("Dirty CLD Scan", _gc_timer_cm);
verify_work_stacks_empty();
RemarkCLDClosure remark_closure(&mrias_cl);
! ClassLoaderDataGraph::cld_oops_do(&remark_closure);
verify_work_stacks_empty();
}
verify_work_stacks_empty();
--- 4983,4993 ----
GCTraceTime(Trace, gc, phases) t("Dirty CLD Scan", _gc_timer_cm);
verify_work_stacks_empty();
RemarkCLDClosure remark_closure(&mrias_cl);
! ClassLoaderDataGraph::cld_do(&remark_closure);
verify_work_stacks_empty();
}
verify_work_stacks_empty();
< prev index next >