8189748: More precise closures for WeakProcessor::weak_oops_do calls

Reviewed-by: pliden, sjohanss
This commit is contained in:
Stefan Karlsson 2017-10-23 11:20:53 +02:00
parent 817d6bc039
commit d129d1cdf2
14 changed files with 90 additions and 75 deletions

View file

@ -543,14 +543,14 @@ void PSMarkSweep::mark_sweep_phase1(bool clear_all_softrefs) {
pt.print_all_references();
}
{
GCTraceTime(Debug, gc, phases) t("Weak Processing", _gc_timer);
WeakProcessor::weak_oops_do(is_alive_closure(), mark_and_push_closure(), follow_stack_closure());
}
// This is the point where the entire marking should have completed.
assert(_marking_stack.is_empty(), "Marking should have completed");
{
GCTraceTime(Debug, gc, phases) t("Weak Processing", _gc_timer);
WeakProcessor::weak_oops_do(is_alive_closure(), &do_nothing_cl);
}
{
GCTraceTime(Debug, gc, phases) t("Class Unloading", _gc_timer);