< prev index next >

src/hotspot/share/runtime/synchronizer.hpp

Print this page
rev 57560 : imported patch 8235795.patch.cr0

@@ -130,10 +130,11 @@
   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** list_p,
+                                  int* count_p,
                                   ObjectMonitor** free_head_p,
                                   ObjectMonitor** free_tail_p);
   static bool deflate_monitor(ObjectMonitor* mid, oop obj,
                               ObjectMonitor** free_head_p,
                               ObjectMonitor** free_tail_p);

@@ -157,27 +158,23 @@
                                                    outputStream * out,
                                                    int *error_cnt_p);
   static void chk_per_thread_free_list_and_count(JavaThread *jt,
                                                  outputStream * out,
                                                  int *error_cnt_p);
-  static void log_in_use_monitor_details(outputStream * out, bool on_exit);
+  static void log_in_use_monitor_details(outputStream * out);
   static int  log_monitor_list_counts(outputStream * out);
   static int  verify_objmon_isinpool(ObjectMonitor *addr) PRODUCT_RETURN0;
 
  private:
   friend class SynchronizerTest;
 
   enum { _BLOCKSIZE = 128 };
   // global list of blocks of monitors
-  static PaddedObjectMonitor* volatile g_block_list;
-  // global monitor free list
-  static ObjectMonitor* volatile g_free_list;
-  // global monitor in-use list, for moribund threads,
-  // monitors they inflated need to be scanned for deflation
-  static ObjectMonitor* volatile g_om_in_use_list;
-  // count of entries in g_om_in_use_list
-  static int g_om_in_use_count;
+  static PaddedObjectMonitor* g_block_list;
+
+  // Function to prepend new blocks to the appropriate lists:
+  static void prepend_block_to_lists(PaddedObjectMonitor* new_blk);
 
   // Process oops in all global used monitors (i.e. moribund thread's monitors)
   static void global_used_oops_do(OopClosure* f);
   // Process oops in monitors on the given list
   static void list_oops_do(ObjectMonitor* list, OopClosure* f);
< prev index next >