--- old/src/hotspot/share/prims/jvm.cpp 2020-02-03 17:39:05.000000000 -0500 +++ new/src/hotspot/share/prims/jvm.cpp 2020-02-03 17:39:04.000000000 -0500 @@ -74,6 +74,7 @@ #include "runtime/os.inline.hpp" #include "runtime/perfData.hpp" #include "runtime/reflection.hpp" +#include "runtime/synchronizer.hpp" #include "runtime/thread.inline.hpp" #include "runtime/threadSMR.hpp" #include "runtime/vframe.inline.hpp" @@ -485,6 +486,11 @@ JVM_ENTRY_NO_ENV(void, JVM_GC(void)) JVMWrapper("JVM_GC"); if (!DisableExplicitGC) { + if (AsyncDeflateIdleMonitors) { + // AsyncDeflateIdleMonitors needs to know when System.gc() is + // called so any special deflation can be done at a safepoint. + ObjectSynchronizer::set_is_special_deflation_requested(true); + } Universe::heap()->collect(GCCause::_java_lang_system_gc); } JVM_END