< prev index next >

src/hotspot/share/gc/parallel/pcTasks.cpp

Print this page




 100     case management:
 101       Management::oops_do(&mark_and_push_closure);
 102       break;
 103 
 104     case jvmti:
 105       JvmtiExport::oops_do(&mark_and_push_closure);
 106       break;
 107 
 108     case system_dictionary:
 109       SystemDictionary::oops_do(&mark_and_push_closure);
 110       break;
 111 
 112     case class_loader_data: {
 113         CLDToOopClosure cld_closure(&mark_and_push_closure, ClassLoaderData::_claim_strong);
 114         ClassLoaderDataGraph::always_strong_cld_do(&cld_closure);
 115       }
 116       break;
 117 
 118     case code_cache:
 119       // Do not treat nmethods as strong roots for mark/sweep, since we can unload them.
 120       //CodeCache::scavenge_root_nmethods_do(CodeBlobToOopClosure(&mark_and_push_closure));
 121       AOTLoader::oops_do(&mark_and_push_closure);
 122       break;
 123 
 124     default:
 125       fatal("Unknown root type");
 126   }
 127 
 128   // Do the real work
 129   cm->follow_marking_stacks();
 130 }
 131 
 132 
 133 //
 134 // RefProcTaskProxy
 135 //
 136 
 137 void RefProcTaskProxy::do_it(GCTaskManager* manager, uint which)
 138 {
 139   assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc");
 140 




 100     case management:
 101       Management::oops_do(&mark_and_push_closure);
 102       break;
 103 
 104     case jvmti:
 105       JvmtiExport::oops_do(&mark_and_push_closure);
 106       break;
 107 
 108     case system_dictionary:
 109       SystemDictionary::oops_do(&mark_and_push_closure);
 110       break;
 111 
 112     case class_loader_data: {
 113         CLDToOopClosure cld_closure(&mark_and_push_closure, ClassLoaderData::_claim_strong);
 114         ClassLoaderDataGraph::always_strong_cld_do(&cld_closure);
 115       }
 116       break;
 117 
 118     case code_cache:
 119       // Do not treat nmethods as strong roots for mark/sweep, since we can unload them.
 120       //ScavengableNMethods::scavengable_nmethods_do(CodeBlobToOopClosure(&mark_and_push_closure));
 121       AOTLoader::oops_do(&mark_and_push_closure);
 122       break;
 123 
 124     default:
 125       fatal("Unknown root type");
 126   }
 127 
 128   // Do the real work
 129   cm->follow_marking_stacks();
 130 }
 131 
 132 
 133 //
 134 // RefProcTaskProxy
 135 //
 136 
 137 void RefProcTaskProxy::do_it(GCTaskManager* manager, uint which)
 138 {
 139   assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc");
 140 


< prev index next >