CLD claiming
235 }
236
237 ZConcurrentRootsIterator::ZConcurrentRootsIterator()
238 : _jni_handles_iter(JNIHandles::global_handles()),
239 _jni_handles(this),
240 _class_loader_data_graph(this) {
241 ZStatTimer timer(ZSubPhaseConcurrentRootsSetup);
242 }
243
244 ZConcurrentRootsIterator::~ZConcurrentRootsIterator() {
245 ZStatTimer timer(ZSubPhaseConcurrentRootsTeardown);
246 }
247
248 void ZConcurrentRootsIterator::do_jni_handles(OopClosure* cl) {
249 ZStatTimer timer(ZSubPhaseConcurrentRootsJNIHandles);
250 _jni_handles_iter.oops_do(cl);
251 }
252
253 void ZConcurrentRootsIterator::do_class_loader_data_graph(OopClosure* cl) {
254 ZStatTimer timer(ZSubPhaseConcurrentRootsClassLoaderDataGraph);
255 CLDToOopClosure cld_cl(cl);
256 ClassLoaderDataGraph::cld_do(&cld_cl);
257 }
258
259 void ZConcurrentRootsIterator::oops_do(OopClosure* cl) {
260 ZStatTimer timer(ZSubPhaseConcurrentRoots);
261 _jni_handles.oops_do(cl);
262 _class_loader_data_graph.oops_do(cl);
263 }
264
265 ZWeakRootsIterator::ZWeakRootsIterator() :
266 _jvmti_weak_export(this),
267 _jfr_weak(this) {
268 assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
269 ZStatTimer timer(ZSubPhasePauseWeakRootsSetup);
270 StringTable::reset_dead_counter();
271 }
272
273 ZWeakRootsIterator::~ZWeakRootsIterator() {
274 ZStatTimer timer(ZSubPhasePauseWeakRootsTeardown);
|
235 }
236
237 ZConcurrentRootsIterator::ZConcurrentRootsIterator()
238 : _jni_handles_iter(JNIHandles::global_handles()),
239 _jni_handles(this),
240 _class_loader_data_graph(this) {
241 ZStatTimer timer(ZSubPhaseConcurrentRootsSetup);
242 }
243
244 ZConcurrentRootsIterator::~ZConcurrentRootsIterator() {
245 ZStatTimer timer(ZSubPhaseConcurrentRootsTeardown);
246 }
247
248 void ZConcurrentRootsIterator::do_jni_handles(OopClosure* cl) {
249 ZStatTimer timer(ZSubPhaseConcurrentRootsJNIHandles);
250 _jni_handles_iter.oops_do(cl);
251 }
252
253 void ZConcurrentRootsIterator::do_class_loader_data_graph(OopClosure* cl) {
254 ZStatTimer timer(ZSubPhaseConcurrentRootsClassLoaderDataGraph);
255 CLDToOopClosure cld_cl(cl, ClassLoaderData::_claim_value_strong);
256 ClassLoaderDataGraph::cld_do(&cld_cl);
257 }
258
259 void ZConcurrentRootsIterator::oops_do(OopClosure* cl) {
260 ZStatTimer timer(ZSubPhaseConcurrentRoots);
261 _jni_handles.oops_do(cl);
262 _class_loader_data_graph.oops_do(cl);
263 }
264
265 ZWeakRootsIterator::ZWeakRootsIterator() :
266 _jvmti_weak_export(this),
267 _jfr_weak(this) {
268 assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
269 ZStatTimer timer(ZSubPhasePauseWeakRootsSetup);
270 StringTable::reset_dead_counter();
271 }
272
273 ZWeakRootsIterator::~ZWeakRootsIterator() {
274 ZStatTimer timer(ZSubPhasePauseWeakRootsTeardown);
|