28 #include "code/codeCache.hpp" |
28 #include "code/codeCache.hpp" |
29 #include "compiler/oopMap.hpp" |
29 #include "compiler/oopMap.hpp" |
30 #include "gc/shared/barrierSet.hpp" |
30 #include "gc/shared/barrierSet.hpp" |
31 #include "gc/shared/barrierSetNMethod.hpp" |
31 #include "gc/shared/barrierSetNMethod.hpp" |
32 #include "gc/shared/oopStorageParState.inline.hpp" |
32 #include "gc/shared/oopStorageParState.inline.hpp" |
|
33 #include "gc/shared/oopStorageSet.hpp" |
33 #include "gc/shared/suspendibleThreadSet.hpp" |
34 #include "gc/shared/suspendibleThreadSet.hpp" |
34 #include "gc/z/zBarrierSetNMethod.hpp" |
35 #include "gc/z/zBarrierSetNMethod.hpp" |
35 #include "gc/z/zGlobals.hpp" |
36 #include "gc/z/zGlobals.hpp" |
36 #include "gc/z/zNMethod.hpp" |
37 #include "gc/z/zNMethod.hpp" |
37 #include "gc/z/zOopClosures.inline.hpp" |
38 #include "gc/z/zOopClosures.inline.hpp" |
41 #include "memory/resourceArea.hpp" |
42 #include "memory/resourceArea.hpp" |
42 #include "memory/universe.hpp" |
43 #include "memory/universe.hpp" |
43 #include "prims/jvmtiExport.hpp" |
44 #include "prims/jvmtiExport.hpp" |
44 #include "prims/resolvedMethodTable.hpp" |
45 #include "prims/resolvedMethodTable.hpp" |
45 #include "runtime/atomic.hpp" |
46 #include "runtime/atomic.hpp" |
46 #include "runtime/jniHandles.hpp" |
|
47 #include "runtime/thread.hpp" |
47 #include "runtime/thread.hpp" |
48 #include "runtime/safepoint.hpp" |
48 #include "runtime/safepoint.hpp" |
49 #include "runtime/synchronizer.hpp" |
49 #include "runtime/synchronizer.hpp" |
50 #include "services/management.hpp" |
50 #include "services/management.hpp" |
51 #include "utilities/debug.hpp" |
51 #include "utilities/debug.hpp" |
263 _jvmti_weak_export.oops_do(cl); |
263 _jvmti_weak_export.oops_do(cl); |
264 } |
264 } |
265 } |
265 } |
266 |
266 |
267 ZConcurrentRootsIterator::ZConcurrentRootsIterator(int cld_claim) : |
267 ZConcurrentRootsIterator::ZConcurrentRootsIterator(int cld_claim) : |
268 _jni_handles_iter(JNIHandles::global_handles()), |
268 _jni_handles_iter(OopStorageSet::jni_global()), |
269 _vm_handles_iter(SystemDictionary::vm_global_oop_storage()), |
269 _vm_handles_iter(OopStorageSet::vm_global()), |
270 _cld_claim(cld_claim), |
270 _cld_claim(cld_claim), |
271 _jni_handles(this), |
271 _jni_handles(this), |
272 _vm_handles(this), |
272 _vm_handles(this), |
273 _class_loader_data_graph(this) { |
273 _class_loader_data_graph(this) { |
274 ZStatTimer timer(ZSubPhaseConcurrentRootsSetup); |
274 ZStatTimer timer(ZSubPhaseConcurrentRootsSetup); |
335 AlwaysTrueClosure always_alive; |
335 AlwaysTrueClosure always_alive; |
336 weak_oops_do(&always_alive, cl); |
336 weak_oops_do(&always_alive, cl); |
337 } |
337 } |
338 |
338 |
339 ZConcurrentWeakRootsIterator::ZConcurrentWeakRootsIterator() : |
339 ZConcurrentWeakRootsIterator::ZConcurrentWeakRootsIterator() : |
340 _vm_weak_handles_iter(SystemDictionary::vm_weak_oop_storage()), |
340 _vm_weak_handles_iter(OopStorageSet::vm_weak()), |
341 _jni_weak_handles_iter(JNIHandles::weak_global_handles()), |
341 _jni_weak_handles_iter(OopStorageSet::jni_weak()), |
342 _string_table_iter(StringTable::weak_storage()), |
342 _string_table_iter(OopStorageSet::string_table_weak()), |
343 _resolved_method_table_iter(ResolvedMethodTable::weak_storage()), |
343 _resolved_method_table_iter(OopStorageSet::resolved_method_table_weak()), |
344 _vm_weak_handles(this), |
344 _vm_weak_handles(this), |
345 _jni_weak_handles(this), |
345 _jni_weak_handles(this), |
346 _string_table(this), |
346 _string_table(this), |
347 _resolved_method_table(this) { |
347 _resolved_method_table(this) { |
348 StringTable::reset_dead_counter(); |
348 StringTable::reset_dead_counter(); |