hotspot/src/share/vm/memory/sharedHeap.cpp
changeset 14582 490bb6c0df7c
parent 13728 882756847a04
child 16370 4b75aa6388ab
equal deleted inserted replaced
14581:8427edf5a77b 14582:490bb6c0df7c
   152   }
   152   }
   153   // Global (strong) JNI handles
   153   // Global (strong) JNI handles
   154   if (!_process_strong_tasks->is_task_claimed(SH_PS_JNIHandles_oops_do))
   154   if (!_process_strong_tasks->is_task_claimed(SH_PS_JNIHandles_oops_do))
   155     JNIHandles::oops_do(roots);
   155     JNIHandles::oops_do(roots);
   156   // All threads execute this; the individual threads are task groups.
   156   // All threads execute this; the individual threads are task groups.
       
   157   CLDToOopClosure roots_from_clds(roots);
       
   158   CLDToOopClosure* roots_from_clds_p = (is_scavenging ? NULL : &roots_from_clds);
   157   if (ParallelGCThreads > 0) {
   159   if (ParallelGCThreads > 0) {
   158     Threads::possibly_parallel_oops_do(roots, code_roots);
   160     Threads::possibly_parallel_oops_do(roots, roots_from_clds_p ,code_roots);
   159   } else {
   161   } else {
   160     Threads::oops_do(roots, code_roots);
   162     Threads::oops_do(roots, roots_from_clds_p, code_roots);
   161   }
   163   }
   162   if (!_process_strong_tasks-> is_task_claimed(SH_PS_ObjectSynchronizer_oops_do))
   164   if (!_process_strong_tasks-> is_task_claimed(SH_PS_ObjectSynchronizer_oops_do))
   163     ObjectSynchronizer::oops_do(roots);
   165     ObjectSynchronizer::oops_do(roots);
   164   if (!_process_strong_tasks->is_task_claimed(SH_PS_FlatProfiler_oops_do))
   166   if (!_process_strong_tasks->is_task_claimed(SH_PS_FlatProfiler_oops_do))
   165     FlatProfiler::oops_do(roots);
   167     FlatProfiler::oops_do(roots);