8227054: ServiceThread needs to know about all OopStorage objects

8227053: ServiceThread cleanup of OopStorage is missing some

OopStorages provides named access and iteration.

Reviewed-by: eosterlund, pliden, coleenp
This commit is contained in:
Kim Barrett 2019-08-21 18:42:30 -04:00
parent de8d01d4d3
commit 1acad37ee6
28 changed files with 721 additions and 358 deletions

View file

@ -84,7 +84,6 @@ class SymbolPropertyTable;
class ProtectionDomainCacheTable;
class ProtectionDomainCacheEntry;
class GCTimer;
class OopStorage;
#define WK_KLASS_ENUM_NAME(kname) kname##_knum
@ -349,7 +348,7 @@ public:
// Applies "f->do_oop" to all root oops in the system dictionary.
// If include_handles is true (the default), then the handles in the
// storage object returned by vm_global_oop_storage() are included.
// vm_global OopStorage object are included.
static void oops_do(OopClosure* f, bool include_handles = true);
// System loader lock
@ -565,10 +564,6 @@ public:
// ProtectionDomain cache
static ProtectionDomainCacheTable* _pd_cache_table;
// VM OopStorage objects.
static OopStorage* _vm_global_oop_storage;
static OopStorage* _vm_weak_oop_storage;
protected:
static void validate_protection_domain(InstanceKlass* klass,
Handle class_loader,
@ -623,10 +618,6 @@ public:
return !m->is_public() && m->method_holder() == SystemDictionary::Object_klass();
}
static void initialize_oop_storage();
static OopStorage* vm_global_oop_storage();
static OopStorage* vm_weak_oop_storage();
protected:
// Setup link to hierarchy
static void add_to_hierarchy(InstanceKlass* k, TRAPS);