--- old/src/hotspot/share/gc/z/zRootsIterator.hpp 2019-08-02 11:24:52.107361521 +0200 +++ new/src/hotspot/share/gc/z/zRootsIterator.hpp 2019-08-02 11:24:51.869353643 +0200 @@ -111,9 +111,9 @@ class ZConcurrentRootsIterator { private: - ZOopStorageIterator _jni_handles_iter; - ZOopStorageIterator _vm_handles_iter; - int _cld_claim; + ZOopStorageIterator _jni_handles_iter; + ZOopStorageIterator _vm_handles_iter; + const int _cld_claim; void do_jni_handles(ZRootsIteratorClosure* cl); void do_vm_handles(ZRootsIteratorClosure* cl); @@ -130,13 +130,31 @@ void oops_do(ZRootsIteratorClosure* cl); }; +class ZConcurrentRootsIteratorClaimStrong : public ZConcurrentRootsIterator { +public: + ZConcurrentRootsIteratorClaimStrong() : + ZConcurrentRootsIterator(ClassLoaderData::_claim_strong) {} +}; + +class ZConcurrentRootsIteratorClaimOther : public ZConcurrentRootsIterator { +public: + ZConcurrentRootsIteratorClaimOther() : + ZConcurrentRootsIterator(ClassLoaderData::_claim_other) {} +}; + +class ZConcurrentRootsIteratorClaimNone : public ZConcurrentRootsIterator { +public: + ZConcurrentRootsIteratorClaimNone() : + ZConcurrentRootsIterator(ClassLoaderData::_claim_none) {} +}; + class ZWeakRootsIterator { private: void do_jvmti_weak_export(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl); void do_jfr_weak(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl); - ZSerialWeakOopsDo _jvmti_weak_export; - ZSerialWeakOopsDo _jfr_weak; + ZSerialWeakOopsDo _jvmti_weak_export; + ZSerialWeakOopsDo _jfr_weak; public: ZWeakRootsIterator();