--- old/src/hotspot/share/runtime/serviceThread.cpp 2019-07-08 11:17:35.000000000 -0700 +++ new/src/hotspot/share/runtime/serviceThread.cpp 2019-07-08 11:17:34.000000000 -0700 @@ -37,10 +37,6 @@ #include "runtime/os.hpp" #include "prims/jvmtiImpl.hpp" #include "prims/resolvedMethodTable.hpp" -#include "services/diagnosticArgument.hpp" -#include "services/diagnosticFramework.hpp" -#include "services/gcNotifier.hpp" -#include "services/lowMemoryDetector.hpp" ServiceThread* ServiceThread::_instance = NULL; @@ -117,10 +113,7 @@ const size_t oopstorage_count = ARRAY_SIZE(oopstorages); while (true) { - bool sensors_changed = false; bool has_jvmti_events = false; - 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; @@ -144,10 +137,7 @@ // only the first recognized bit of work, to avoid frequently true early // tests from potentially starving later work. Hence the use of // arithmetic-or to combine results; we don't want short-circuiting. - while (((sensors_changed = LowMemoryDetector::has_pending_requests()) | - (has_jvmti_events = JvmtiDeferredEventQueue::has_events()) | - (has_gc_notification_event = GCNotifier::has_event()) | - (has_dcmd_notification_event = DCmdFactory::has_pending_jmx_notification()) | + while (((has_jvmti_events = JvmtiDeferredEventQueue::has_events()) | (stringtable_work = StringTable::has_work()) | (symboltable_work = SymbolTable::has_work()) | (resolved_method_table_work = ResolvedMethodTable::has_work()) | @@ -178,18 +168,6 @@ jvmti_event.post(); } - if (sensors_changed) { - LowMemoryDetector::process_sensor_changes(jt); - } - - if(has_gc_notification_event) { - GCNotifier::sendNotification(CHECK); - } - - if(has_dcmd_notification_event) { - DCmdFactory::send_notification(CHECK); - } - if (resolved_method_table_work) { ResolvedMethodTable::do_concurrent_work(jt); }