< prev index next >

src/hotspot/share/runtime/vmOperations.cpp

Print this page
rev 55000 : [mq]: dcubed.monitor_deflate_conc.v2.04

@@ -39,10 +39,11 @@
 #include "runtime/arguments.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/frame.inline.hpp"
 #include "runtime/interfaceSupport.inline.hpp"
 #include "runtime/sweeper.hpp"
+#include "runtime/synchronizer.hpp"
 #include "runtime/thread.inline.hpp"
 #include "runtime/threadSMR.inline.hpp"
 #include "runtime/vmOperations.hpp"
 #include "services/threadService.hpp"
 

@@ -469,10 +470,21 @@
     MonitorLocker ml(&timer, Mutex::_no_safepoint_check_flag);
     ml.wait(10);
   }
 }
 
+bool VM_Exit::doit_prologue() {
+  if (AsyncDeflateIdleMonitors) {
+    // AsyncDeflateIdleMonitors does a special deflation at the VM_Exit
+    // safepoint in order to reduce the in-use monitor population that
+    // is reported ObjectSynchronizer::log_in_use_monitor_details() at
+    // VM exit.
+    ObjectSynchronizer::set_is_special_deflation_requested(true);
+  }
+  return true;
+}
+
 void VM_Exit::doit() {
 
   if (VerifyBeforeExit) {
     HandleMark hm(VMThread::vm_thread());
     // Among other things, this ensures that Eden top is correct.
< prev index next >