< prev index next >

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

Print this page




 235   ZStatTimer timer(ZSubPhasePauseRoots);
 236   _universe.oops_do(cl);
 237   _object_synchronizer.oops_do(cl);
 238   _management.oops_do(cl);
 239   _jvmti_export.oops_do(cl);
 240   _system_dictionary.oops_do(cl);
 241   _jni_handles.oops_do(cl);
 242   _class_loader_data_graph.oops_do(cl);
 243   _threads.oops_do(cl);
 244   _code_cache.oops_do(cl);
 245   if (visit_jvmti_weak_export) {
 246     _jvmti_weak_export.oops_do(cl);
 247   }
 248 }
 249 
 250 ZWeakRootsIterator::ZWeakRootsIterator() :
 251     _jvmti_weak_export(this),
 252     _jfr_weak(this) {
 253   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
 254   ZStatTimer timer(ZSubPhasePauseWeakRootsSetup);
 255   StringTable::reset_dead_counter();
 256 }
 257 
 258 ZWeakRootsIterator::~ZWeakRootsIterator() {
 259   ZStatTimer timer(ZSubPhasePauseWeakRootsTeardown);
 260   StringTable::finish_dead_counter();
 261 }
 262 
 263 void ZWeakRootsIterator::do_jvmti_weak_export(BoolObjectClosure* is_alive, OopClosure* cl) {
 264   ZStatTimer timer(ZSubPhasePauseWeakRootsJVMTIWeakExport);
 265   JvmtiExport::weak_oops_do(is_alive, cl);
 266 }
 267 
 268 void ZWeakRootsIterator::do_jfr_weak(BoolObjectClosure* is_alive, OopClosure* cl) {
 269 #if INCLUDE_JFR
 270   ZStatTimer timer(ZSubPhasePauseWeakRootsJFRWeak);
 271   Jfr::weak_oops_do(is_alive, cl);
 272 #endif
 273 }
 274 
 275 void ZWeakRootsIterator::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl) {
 276   ZStatTimer timer(ZSubPhasePauseWeakRoots);
 277   _jvmti_weak_export.weak_oops_do(is_alive, cl);
 278   _jfr_weak.weak_oops_do(is_alive, cl);
 279 }
 280 




 235   ZStatTimer timer(ZSubPhasePauseRoots);
 236   _universe.oops_do(cl);
 237   _object_synchronizer.oops_do(cl);
 238   _management.oops_do(cl);
 239   _jvmti_export.oops_do(cl);
 240   _system_dictionary.oops_do(cl);
 241   _jni_handles.oops_do(cl);
 242   _class_loader_data_graph.oops_do(cl);
 243   _threads.oops_do(cl);
 244   _code_cache.oops_do(cl);
 245   if (visit_jvmti_weak_export) {
 246     _jvmti_weak_export.oops_do(cl);
 247   }
 248 }
 249 
 250 ZWeakRootsIterator::ZWeakRootsIterator() :
 251     _jvmti_weak_export(this),
 252     _jfr_weak(this) {
 253   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
 254   ZStatTimer timer(ZSubPhasePauseWeakRootsSetup);

 255 }
 256 
 257 ZWeakRootsIterator::~ZWeakRootsIterator() {
 258   ZStatTimer timer(ZSubPhasePauseWeakRootsTeardown);

 259 }
 260 
 261 void ZWeakRootsIterator::do_jvmti_weak_export(BoolObjectClosure* is_alive, OopClosure* cl) {
 262   ZStatTimer timer(ZSubPhasePauseWeakRootsJVMTIWeakExport);
 263   JvmtiExport::weak_oops_do(is_alive, cl);
 264 }
 265 
 266 void ZWeakRootsIterator::do_jfr_weak(BoolObjectClosure* is_alive, OopClosure* cl) {
 267 #if INCLUDE_JFR
 268   ZStatTimer timer(ZSubPhasePauseWeakRootsJFRWeak);
 269   Jfr::weak_oops_do(is_alive, cl);
 270 #endif
 271 }
 272 
 273 void ZWeakRootsIterator::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl) {
 274   ZStatTimer timer(ZSubPhasePauseWeakRoots);
 275   _jvmti_weak_export.weak_oops_do(is_alive, cl);
 276   _jfr_weak.weak_oops_do(is_alive, cl);
 277 }
 278 


< prev index next >