< prev index next >

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

Print this page




 108       FlatProfiler::oops_do(&mark_and_push_closure);
 109       break;
 110 
 111     case management:
 112       Management::oops_do(&mark_and_push_closure);
 113       break;
 114 
 115     case jvmti:
 116       JvmtiExport::oops_do(&mark_and_push_closure);
 117       break;
 118 
 119     case system_dictionary:
 120       SystemDictionary::always_strong_oops_do(&mark_and_push_closure);
 121       break;
 122 
 123     case class_loader_data:
 124       ClassLoaderDataGraph::always_strong_oops_do(&mark_and_push_closure, &follow_klass_closure, true);
 125       break;
 126 
 127     case code_cache:
 128       // Do not treat nmethods as strong roots for mark/sweep, since we can unload them.
 129       //CodeCache::scavenge_root_nmethods_do(CodeBlobToOopClosure(&mark_and_push_closure));



 130       break;
 131 
 132     default:
 133       fatal("Unknown root type");
 134   }
 135 
 136   // Do the real work
 137   cm->follow_marking_stacks();
 138 }
 139 
 140 
 141 //
 142 // RefProcTaskProxy
 143 //
 144 
 145 void RefProcTaskProxy::do_it(GCTaskManager* manager, uint which)
 146 {
 147   assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc");
 148 
 149   ParCompactionManager* cm =




 108       FlatProfiler::oops_do(&mark_and_push_closure);
 109       break;
 110 
 111     case management:
 112       Management::oops_do(&mark_and_push_closure);
 113       break;
 114 
 115     case jvmti:
 116       JvmtiExport::oops_do(&mark_and_push_closure);
 117       break;
 118 
 119     case system_dictionary:
 120       SystemDictionary::always_strong_oops_do(&mark_and_push_closure);
 121       break;
 122 
 123     case class_loader_data:
 124       ClassLoaderDataGraph::always_strong_oops_do(&mark_and_push_closure, &follow_klass_closure, true);
 125       break;
 126 
 127     case code_cache:
 128       // Treat nmethods as strong roots for mark/sweep if we don't intend to unload them.
 129       if (!ClassUnloading) {
 130         CodeBlobToOopClosure cl(&mark_and_push_closure, false);
 131         CodeCache::scavenge_root_nmethods_do(&cl);
 132       }
 133       break;
 134 
 135     default:
 136       fatal("Unknown root type");
 137   }
 138 
 139   // Do the real work
 140   cm->follow_marking_stacks();
 141 }
 142 
 143 
 144 //
 145 // RefProcTaskProxy
 146 //
 147 
 148 void RefProcTaskProxy::do_it(GCTaskManager* manager, uint which)
 149 {
 150   assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc");
 151 
 152   ParCompactionManager* cm =


< prev index next >