< prev index next >
src/hotspot/share/runtime/serviceThread.cpp
Print this page
@@ -39,10 +39,11 @@
#include "prims/resolvedMethodTable.hpp"
#include "services/diagnosticArgument.hpp"
#include "services/diagnosticFramework.hpp"
#include "services/gcNotifier.hpp"
#include "services/lowMemoryDetector.hpp"
+#include "services/threadTable.hpp"
ServiceThread* ServiceThread::_instance = NULL;
void ServiceThread::initialize() {
EXCEPTION_MARK;
@@ -122,10 +123,11 @@
bool has_gc_notification_event = false;
bool has_dcmd_notification_event = false;
bool stringtable_work = false;
bool symboltable_work = false;
bool resolved_method_table_work = false;
+ bool thread_table_work = false;
bool protection_domain_table_work = false;
bool oopstorage_work = false;
bool oopstorages_cleanup[oopstorage_count] = {}; // Zero (false) initialize.
JvmtiDeferredEvent jvmti_event;
{
@@ -149,10 +151,11 @@
(has_gc_notification_event = GCNotifier::has_event()) |
(has_dcmd_notification_event = DCmdFactory::has_pending_jmx_notification()) |
(stringtable_work = StringTable::has_work()) |
(symboltable_work = SymbolTable::has_work()) |
(resolved_method_table_work = ResolvedMethodTable::has_work()) |
+ (thread_table_work = ThreadTable::has_work()) |
(protection_domain_table_work = SystemDictionary::pd_cache_table()->has_work()) |
(oopstorage_work = needs_oopstorage_cleanup(oopstorages,
oopstorages_cleanup,
oopstorage_count)))
@@ -192,10 +195,14 @@
if (resolved_method_table_work) {
ResolvedMethodTable::do_concurrent_work(jt);
}
+ if (thread_table_work) {
+ ThreadTable::do_concurrent_work(jt);
+ }
+
if (protection_domain_table_work) {
SystemDictionary::pd_cache_table()->unlink();
}
if (oopstorage_work) {
< prev index next >