--- old/src/hotspot/share/runtime/serviceThread.cpp 2018-08-20 11:09:15.341081120 -0400 +++ new/src/hotspot/share/runtime/serviceThread.cpp 2018-08-20 11:09:14.896039664 -0400 @@ -31,6 +31,7 @@ #include "runtime/mutexLocker.hpp" #include "runtime/os.hpp" #include "prims/jvmtiImpl.hpp" +#include "prims/resolvedMethodTable.hpp" #include "services/diagnosticArgument.hpp" #include "services/diagnosticFramework.hpp" #include "services/gcNotifier.hpp" @@ -86,6 +87,7 @@ bool acs_notify = false; bool stringtable_work = false; bool symboltable_work = false; + bool resolved_method_table_work = false; JvmtiDeferredEvent jvmti_event; { // Need state transition ThreadBlockInVM so that this thread @@ -104,7 +106,8 @@ !(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())) { + !(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); @@ -132,12 +135,16 @@ } if(has_gc_notification_event) { - GCNotifier::sendNotification(CHECK); + GCNotifier::sendNotification(CHECK); } if(has_dcmd_notification_event) { DCmdFactory::send_notification(CHECK); } + + if (resolved_method_table_work) { + ResolvedMethodTable::unlink(); + } } }