hotspot/src/share/vm/runtime/synchronizer.hpp
changeset 46702 13ae789b982e
parent 46541 d20828de9e39
--- a/hotspot/src/share/vm/runtime/synchronizer.hpp	Fri Jul 21 09:50:12 2017 +0200
+++ b/hotspot/src/share/vm/runtime/synchronizer.hpp	Fri Jul 07 12:49:11 2017 +0200
@@ -32,6 +32,12 @@
 
 class ObjectMonitor;
 
+struct DeflateMonitorCounters {
+  int nInuse;          // currently associated with objects
+  int nInCirculation;  // extant
+  int nScavenged;      // reclaimed
+};
+
 class ObjectSynchronizer : AllStatic {
   friend class VMStructs;
  public:
@@ -127,7 +133,11 @@
   // GC: we current use aggressive monitor deflation policy
   // Basically we deflate all monitors that are not busy.
   // An adaptive profile-based deflation policy could be used if needed
-  static void deflate_idle_monitors();
+  static void deflate_idle_monitors(DeflateMonitorCounters* counters);
+  static void deflate_thread_local_monitors(Thread* thread, DeflateMonitorCounters* counters);
+  static void prepare_deflate_idle_monitors(DeflateMonitorCounters* counters);
+  static void finish_deflate_idle_monitors(DeflateMonitorCounters* counters);
+
   // For a given monitor list: global or per-thread, deflate idle monitors
   static int deflate_monitor_list(ObjectMonitor** listheadp,
                                   ObjectMonitor** freeHeadp,