255 _management.oops_do(cl);
256 _jvmti_export.oops_do(cl);
257 _system_dictionary.oops_do(cl);
258 _threads.oops_do(cl);
259 if (!ClassUnloading) {
260 _code_cache.oops_do(cl);
261 }
262 if (visit_jvmti_weak_export) {
263 _jvmti_weak_export.oops_do(cl);
264 }
265 }
266
267 ZConcurrentRootsIterator::ZConcurrentRootsIterator(int cld_claim) :
268 _jni_handles_iter(JNIHandles::global_handles()),
269 _vm_handles_iter(SystemDictionary::vm_global_oop_storage()),
270 _cld_claim(cld_claim),
271 _jni_handles(this),
272 _vm_handles(this),
273 _class_loader_data_graph(this) {
274 ZStatTimer timer(ZSubPhaseConcurrentRootsSetup);
275 }
276
277 ZConcurrentRootsIterator::~ZConcurrentRootsIterator() {
278 ZStatTimer timer(ZSubPhaseConcurrentRootsTeardown);
279 }
280
281 void ZConcurrentRootsIterator::do_jni_handles(ZRootsIteratorClosure* cl) {
282 ZStatTimer timer(ZSubPhaseConcurrentRootsJNIHandles);
283 _jni_handles_iter.oops_do(cl);
284 }
285
286 void ZConcurrentRootsIterator::do_vm_handles(ZRootsIteratorClosure* cl) {
287 ZStatTimer timer(ZSubPhaseConcurrentRootsVMHandles);
288 _vm_handles_iter.oops_do(cl);
289 }
290
291 void ZConcurrentRootsIterator::do_class_loader_data_graph(ZRootsIteratorClosure* cl) {
292 ZStatTimer timer(ZSubPhaseConcurrentRootsClassLoaderDataGraph);
293 CLDToOopClosure cld_cl(cl, _cld_claim);
294 ClassLoaderDataGraph::always_strong_cld_do(&cld_cl);
|
255 _management.oops_do(cl);
256 _jvmti_export.oops_do(cl);
257 _system_dictionary.oops_do(cl);
258 _threads.oops_do(cl);
259 if (!ClassUnloading) {
260 _code_cache.oops_do(cl);
261 }
262 if (visit_jvmti_weak_export) {
263 _jvmti_weak_export.oops_do(cl);
264 }
265 }
266
267 ZConcurrentRootsIterator::ZConcurrentRootsIterator(int cld_claim) :
268 _jni_handles_iter(JNIHandles::global_handles()),
269 _vm_handles_iter(SystemDictionary::vm_global_oop_storage()),
270 _cld_claim(cld_claim),
271 _jni_handles(this),
272 _vm_handles(this),
273 _class_loader_data_graph(this) {
274 ZStatTimer timer(ZSubPhaseConcurrentRootsSetup);
275 ClassLoaderDataGraph::clear_claimed_marks(cld_claim);
276 }
277
278 ZConcurrentRootsIterator::~ZConcurrentRootsIterator() {
279 ZStatTimer timer(ZSubPhaseConcurrentRootsTeardown);
280 }
281
282 void ZConcurrentRootsIterator::do_jni_handles(ZRootsIteratorClosure* cl) {
283 ZStatTimer timer(ZSubPhaseConcurrentRootsJNIHandles);
284 _jni_handles_iter.oops_do(cl);
285 }
286
287 void ZConcurrentRootsIterator::do_vm_handles(ZRootsIteratorClosure* cl) {
288 ZStatTimer timer(ZSubPhaseConcurrentRootsVMHandles);
289 _vm_handles_iter.oops_do(cl);
290 }
291
292 void ZConcurrentRootsIterator::do_class_loader_data_graph(ZRootsIteratorClosure* cl) {
293 ZStatTimer timer(ZSubPhaseConcurrentRootsClassLoaderDataGraph);
294 CLDToOopClosure cld_cl(cl, _cld_claim);
295 ClassLoaderDataGraph::always_strong_cld_do(&cld_cl);
|