< prev index next >

src/hotspot/share/runtime/serviceThread.cpp

Print this page

        

*** 21,32 **** --- 21,34 ---- * questions. * */ #include "precompiled.hpp" + #include "classfile/protectionDomainCache.hpp" #include "classfile/stringTable.hpp" #include "classfile/symbolTable.hpp" + #include "classfile/systemDictionary.hpp" #include "runtime/interfaceSupport.inline.hpp" #include "runtime/javaCalls.hpp" #include "runtime/serviceThread.hpp" #include "runtime/mutexLocker.hpp" #include "runtime/os.hpp"
*** 86,95 **** --- 88,98 ---- bool has_dcmd_notification_event = false; bool acs_notify = false; bool stringtable_work = false; bool symboltable_work = false; bool resolved_method_table_work = false; + bool protection_domain_table_work = false; JvmtiDeferredEvent jvmti_event; { // Need state transition ThreadBlockInVM so that this thread // will be handled by safepoint correctly when this thread is // notified at a safepoint.
*** 105,115 **** !(has_jvmti_events = JvmtiDeferredEventQueue::has_events()) && !(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())) { // wait until one of the sensors has pending requests, or there is a // pending JVMTI event or JMX GC notification to post Service_lock->wait(Mutex::_no_safepoint_check_flag); } --- 108,119 ---- !(has_jvmti_events = JvmtiDeferredEventQueue::has_events()) && !(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()) && ! !(protection_domain_table_work = SystemDictionary::pd_cache_table()->has_work())) { // wait until one of the sensors has pending requests, or there is a // pending JVMTI event or JMX GC notification to post Service_lock->wait(Mutex::_no_safepoint_check_flag); }
*** 143,152 **** --- 147,160 ---- } if (resolved_method_table_work) { ResolvedMethodTable::unlink(); } + + if (protection_domain_table_work) { + SystemDictionary::pd_cache_table()->unlink(); + } } } bool ServiceThread::is_service_thread(Thread* thread) { return thread == _instance;
< prev index next >