src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hsx-gc Cdiff src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp

src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp

Print this page

        

*** 63,73 **** break; case threads: { ResourceMark rm; ! Threads::oops_do(&roots_closure, NULL); } break; case object_synchronizer: ObjectSynchronizer::oops_do(&roots_closure); --- 63,74 ---- break; case threads: { ResourceMark rm; ! CLDToOopClosure* cld_closure = NULL; // Not needed. All CLDs are already visited. ! Threads::oops_do(&roots_closure, cld_closure, NULL); } break; case object_synchronizer: ObjectSynchronizer::oops_do(&roots_closure);
*** 118,134 **** void ThreadRootsTask::do_it(GCTaskManager* manager, uint which) { assert(Universe::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); PSScavengeRootsClosure roots_closure(pm); CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true); if (_java_thread != NULL) ! _java_thread->oops_do(&roots_closure, &roots_in_blobs); if (_vm_thread != NULL) ! _vm_thread->oops_do(&roots_closure, &roots_in_blobs); // Do the real work pm->drain_stacks(false); } --- 119,136 ---- void ThreadRootsTask::do_it(GCTaskManager* manager, uint which) { assert(Universe::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); PSScavengeRootsClosure roots_closure(pm); + CLDToOopClosure* roots_from_clds = NULL; // Not needed. All CLDs are already visited. CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true); if (_java_thread != NULL) ! _java_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs); if (_vm_thread != NULL) ! _vm_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs); // Do the real work pm->drain_stacks(false); }
src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File