< prev index next >

src/hotspot/share/gc/z/zRootsIterator.cpp

Print this page




 226     ClassLoaderDataGraph_lock->lock();
 227     ClassLoaderDataGraph::clear_claimed_marks();
 228   }
 229 }
 230 
 231 ZConcurrentRootsIterator::~ZConcurrentRootsIterator() {
 232   ZStatTimer timer(ZSubPhaseConcurrentRootsTeardown);
 233   if (_marking) {
 234     ClassLoaderDataGraph_lock->unlock();
 235   }
 236 }
 237 
 238 void ZConcurrentRootsIterator::do_jni_handles(ZRootsIteratorClosure* cl) {
 239   ZStatTimer timer(ZSubPhaseConcurrentRootsJNIHandles);
 240   _jni_handles_iter.oops_do(cl);
 241 }
 242 
 243 void ZConcurrentRootsIterator::do_class_loader_data_graph(ZRootsIteratorClosure* cl) {
 244   ZStatTimer timer(ZSubPhaseConcurrentRootsClassLoaderDataGraph);
 245   CLDToOopClosure cld_cl(cl, _marking ? ClassLoaderData::_claim_strong : ClassLoaderData::_claim_none);
 246   ClassLoaderDataGraph::cld_do(&cld_cl);
 247 }
 248 
 249 void ZConcurrentRootsIterator::oops_do(ZRootsIteratorClosure* cl) {
 250   ZStatTimer timer(ZSubPhaseConcurrentRoots);
 251   _jni_handles.oops_do(cl);
 252   _class_loader_data_graph.oops_do(cl);
 253 }
 254 
 255 ZWeakRootsIterator::ZWeakRootsIterator() :
 256     _jvmti_weak_export(this),
 257     _jfr_weak(this) {
 258   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
 259   ZStatTimer timer(ZSubPhasePauseWeakRootsSetup);
 260 }
 261 
 262 ZWeakRootsIterator::~ZWeakRootsIterator() {
 263   ZStatTimer timer(ZSubPhasePauseWeakRootsTeardown);
 264 }
 265 
 266 void ZWeakRootsIterator::do_jvmti_weak_export(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {




 226     ClassLoaderDataGraph_lock->lock();
 227     ClassLoaderDataGraph::clear_claimed_marks();
 228   }
 229 }
 230 
 231 ZConcurrentRootsIterator::~ZConcurrentRootsIterator() {
 232   ZStatTimer timer(ZSubPhaseConcurrentRootsTeardown);
 233   if (_marking) {
 234     ClassLoaderDataGraph_lock->unlock();
 235   }
 236 }
 237 
 238 void ZConcurrentRootsIterator::do_jni_handles(ZRootsIteratorClosure* cl) {
 239   ZStatTimer timer(ZSubPhaseConcurrentRootsJNIHandles);
 240   _jni_handles_iter.oops_do(cl);
 241 }
 242 
 243 void ZConcurrentRootsIterator::do_class_loader_data_graph(ZRootsIteratorClosure* cl) {
 244   ZStatTimer timer(ZSubPhaseConcurrentRootsClassLoaderDataGraph);
 245   CLDToOopClosure cld_cl(cl, _marking ? ClassLoaderData::_claim_strong : ClassLoaderData::_claim_none);
 246   ClassLoaderDataGraph::cld_oops_do(&cld_cl);
 247 }
 248 
 249 void ZConcurrentRootsIterator::oops_do(ZRootsIteratorClosure* cl) {
 250   ZStatTimer timer(ZSubPhaseConcurrentRoots);
 251   _jni_handles.oops_do(cl);
 252   _class_loader_data_graph.oops_do(cl);
 253 }
 254 
 255 ZWeakRootsIterator::ZWeakRootsIterator() :
 256     _jvmti_weak_export(this),
 257     _jfr_weak(this) {
 258   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
 259   ZStatTimer timer(ZSubPhasePauseWeakRootsSetup);
 260 }
 261 
 262 ZWeakRootsIterator::~ZWeakRootsIterator() {
 263   ZStatTimer timer(ZSubPhasePauseWeakRootsTeardown);
 264 }
 265 
 266 void ZWeakRootsIterator::do_jvmti_weak_export(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {


< prev index next >