< prev index next >

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

Print this page




 158   ZCodeBlobClosure code_cl(this);
 159   thread->oops_do(this, ClassUnloading ? &code_cl : NULL);
 160 }
 161 
 162 ZRootsIterator::ZRootsIterator() :
 163     _universe(this),
 164     _object_synchronizer(this),
 165     _management(this),
 166     _jvmti_export(this),
 167     _jvmti_weak_export(this),
 168     _system_dictionary(this),
 169     _threads(this),
 170     _code_cache(this) {
 171   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
 172   ZStatTimer timer(ZSubPhasePauseRootsSetup);
 173   Threads::change_thread_claim_parity();
 174   COMPILER2_PRESENT(DerivedPointerTable::clear());
 175   if (ClassUnloading) {
 176     nmethod::oops_do_marking_prologue();
 177   } else {
 178     ZNMethodTable::nmethod_entries_do_begin();
 179   }
 180 }
 181 
 182 ZRootsIterator::~ZRootsIterator() {
 183   ZStatTimer timer(ZSubPhasePauseRootsTeardown);
 184   ResourceMark rm;
 185   if (ClassUnloading) {
 186     nmethod::oops_do_marking_epilogue();
 187   } else {
 188     ZNMethodTable::nmethod_entries_do_end();
 189   }
 190   JvmtiExport::gc_epilogue();
 191 
 192   COMPILER2_PRESENT(DerivedPointerTable::update_pointers());
 193   Threads::assert_all_threads_claimed();
 194 }
 195 
 196 void ZRootsIterator::do_universe(ZRootsIteratorClosure* cl) {
 197   ZStatTimer timer(ZSubPhasePauseRootsUniverse);
 198   Universe::oops_do(cl);
 199 }
 200 
 201 void ZRootsIterator::do_object_synchronizer(ZRootsIteratorClosure* cl) {
 202   ZStatTimer timer(ZSubPhasePauseRootsObjectSynchronizer);
 203   ObjectSynchronizer::oops_do(cl);
 204 }
 205 
 206 void ZRootsIterator::do_management(ZRootsIteratorClosure* cl) {
 207   ZStatTimer timer(ZSubPhasePauseRootsManagement);
 208   Management::oops_do(cl);




 158   ZCodeBlobClosure code_cl(this);
 159   thread->oops_do(this, ClassUnloading ? &code_cl : NULL);
 160 }
 161 
 162 ZRootsIterator::ZRootsIterator() :
 163     _universe(this),
 164     _object_synchronizer(this),
 165     _management(this),
 166     _jvmti_export(this),
 167     _jvmti_weak_export(this),
 168     _system_dictionary(this),
 169     _threads(this),
 170     _code_cache(this) {
 171   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
 172   ZStatTimer timer(ZSubPhasePauseRootsSetup);
 173   Threads::change_thread_claim_parity();
 174   COMPILER2_PRESENT(DerivedPointerTable::clear());
 175   if (ClassUnloading) {
 176     nmethod::oops_do_marking_prologue();
 177   } else {
 178     ZNMethodTable::nmethods_do_begin();
 179   }
 180 }
 181 
 182 ZRootsIterator::~ZRootsIterator() {
 183   ZStatTimer timer(ZSubPhasePauseRootsTeardown);
 184   ResourceMark rm;
 185   if (ClassUnloading) {
 186     nmethod::oops_do_marking_epilogue();
 187   } else {
 188     ZNMethodTable::nmethods_do_end();
 189   }
 190   JvmtiExport::gc_epilogue();
 191 
 192   COMPILER2_PRESENT(DerivedPointerTable::update_pointers());
 193   Threads::assert_all_threads_claimed();
 194 }
 195 
 196 void ZRootsIterator::do_universe(ZRootsIteratorClosure* cl) {
 197   ZStatTimer timer(ZSubPhasePauseRootsUniverse);
 198   Universe::oops_do(cl);
 199 }
 200 
 201 void ZRootsIterator::do_object_synchronizer(ZRootsIteratorClosure* cl) {
 202   ZStatTimer timer(ZSubPhasePauseRootsObjectSynchronizer);
 203   ObjectSynchronizer::oops_do(cl);
 204 }
 205 
 206 void ZRootsIterator::do_management(ZRootsIteratorClosure* cl) {
 207   ZStatTimer timer(ZSubPhasePauseRootsManagement);
 208   Management::oops_do(cl);


< prev index next >