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

@ -47,6 +47,7 @@
#include "compiler/compileBroker.hpp"
#include "gc/shared/gcTraceTime.inline.hpp"
#include "gc/shared/oopStorage.inline.hpp"
#include "gc/shared/oopStorageSet.hpp"
#include "interpreter/bytecodeStream.hpp"
#include "interpreter/interpreter.hpp"
#include "jfr/jfrEvents.hpp"
@ -114,10 +115,6 @@ bool SystemDictionary::_has_checkPackageAccess = false;
const int defaultProtectionDomainCacheSize = 1009;
OopStorage* SystemDictionary::_vm_global_oop_storage = NULL;
OopStorage* SystemDictionary::_vm_weak_oop_storage = NULL;
// ----------------------------------------------------------------------------
// Java-level SystemLoader and PlatformLoader
@ -1855,7 +1852,7 @@ void SystemDictionary::oops_do(OopClosure* f, bool include_handles) {
invoke_method_table()->oops_do(f);
if (include_handles) {
vm_global_oop_storage()->oops_do(f);
OopStorageSet::vm_global()->oops_do(f);
}
}
@ -2896,25 +2893,3 @@ int SystemDictionaryDCmd::num_arguments() {
return 0;
}
}
void SystemDictionary::initialize_oop_storage() {
_vm_global_oop_storage =
new OopStorage("VM Global Oop Handles",
VMGlobalAlloc_lock,
VMGlobalActive_lock);
_vm_weak_oop_storage =
new OopStorage("VM Weak Oop Handles",
VMWeakAlloc_lock,
VMWeakActive_lock);
}
OopStorage* SystemDictionary::vm_global_oop_storage() {
assert(_vm_global_oop_storage != NULL, "Uninitialized");
return _vm_global_oop_storage;
}
OopStorage* SystemDictionary::vm_weak_oop_storage() {
assert(_vm_weak_oop_storage != NULL, "Uninitialized");
return _vm_weak_oop_storage;
}