src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hsx-gc Cdiff src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp
src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp
Print this page
*** 50,67 ****
NOT_PRODUCT(TraceTime tm("ThreadRootsMarkingTask",
PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty));
ParCompactionManager* cm =
ParCompactionManager::gc_thread_compaction_manager(which);
PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
CodeBlobToOopClosure mark_and_push_in_blobs(&mark_and_push_closure, /*do_marking=*/ true);
if (_java_thread != NULL)
! _java_thread->oops_do(&mark_and_push_closure, &mark_and_push_in_blobs);
if (_vm_thread != NULL)
! _vm_thread->oops_do(&mark_and_push_closure, &mark_and_push_in_blobs);
// Do the real work
cm->follow_marking_stacks();
}
--- 50,75 ----
NOT_PRODUCT(TraceTime tm("ThreadRootsMarkingTask",
PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty));
ParCompactionManager* cm =
ParCompactionManager::gc_thread_compaction_manager(which);
+
PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
+ CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true);
CodeBlobToOopClosure mark_and_push_in_blobs(&mark_and_push_closure, /*do_marking=*/ true);
if (_java_thread != NULL)
! _java_thread->oops_do(
! &mark_and_push_closure,
! &mark_and_push_from_clds,
! &mark_and_push_in_blobs);
if (_vm_thread != NULL)
! _vm_thread->oops_do(
! &mark_and_push_closure,
! &mark_and_push_from_clds,
! &mark_and_push_in_blobs);
// Do the real work
cm->follow_marking_stacks();
}
*** 87,97 ****
case threads:
{
ResourceMark rm;
CodeBlobToOopClosure each_active_code_blob(&mark_and_push_closure, /*do_marking=*/ true);
! Threads::oops_do(&mark_and_push_closure, &each_active_code_blob);
}
break;
case object_synchronizer:
ObjectSynchronizer::oops_do(&mark_and_push_closure);
--- 95,106 ----
case threads:
{
ResourceMark rm;
CodeBlobToOopClosure each_active_code_blob(&mark_and_push_closure, /*do_marking=*/ true);
! CLDToOopClosure mark_and_push_from_cld(&mark_and_push_closure);
! Threads::oops_do(&mark_and_push_closure, &mark_and_push_from_cld, &each_active_code_blob);
}
break;
case object_synchronizer:
ObjectSynchronizer::oops_do(&mark_and_push_closure);
src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File