< prev index next >

src/hotspot/share/runtime/synchronizer.hpp

Print this page
rev 54416 : Checkpoint latest preliminary review patches for full OpenJDK review; merge with 8222295.patch.
rev 54417 : imported patch dcubed.monitor_deflate_conc.v2.01


 124   // NOTE: It may cause monitor inflation
 125   static intptr_t identity_hash_value_for(Handle obj);
 126   static intptr_t FastHashCode(Thread * Self, oop obj);
 127 
 128   // java.lang.Thread support
 129   static bool current_thread_holds_lock(JavaThread* thread, Handle h_obj);
 130   static LockOwnership query_lock_ownership(JavaThread * self, Handle h_obj);
 131 
 132   static JavaThread* get_lock_owner(ThreadsList * t_list, Handle h_obj);
 133 
 134   // JNI detach support
 135   static void release_monitors_owned_by_thread(TRAPS);
 136   static void monitors_iterate(MonitorClosure* m);
 137 
 138   // GC: we current use aggressive monitor deflation policy
 139   // Basically we deflate all monitors that are not busy.
 140   // An adaptive profile-based deflation policy could be used if needed
 141   static void deflate_idle_monitors(DeflateMonitorCounters* counters);
 142   static void deflate_global_idle_monitors_using_JT();
 143   static void deflate_per_thread_idle_monitors_using_JT();

 144   static void deflate_thread_local_monitors(Thread* thread, DeflateMonitorCounters* counters);
 145   static void prepare_deflate_idle_monitors(DeflateMonitorCounters* counters);
 146   static void finish_deflate_idle_monitors(DeflateMonitorCounters* counters);
 147 
 148   // For a given monitor list: global or per-thread, deflate idle monitors
 149   static int deflate_monitor_list(ObjectMonitor** listheadp,
 150                                   ObjectMonitor** freeHeadp,
 151                                   ObjectMonitor** freeTailp);
 152   // For a given in-use monitor list: global or per-thread, deflate idle
 153   // monitors using a JavaThread.
 154   static int deflate_monitor_list_using_JT(ObjectMonitor** listHeadp,
 155                                            ObjectMonitor** freeHeadp,
 156                                            ObjectMonitor** freeTailp,
 157                                            ObjectMonitor** savedMidInUsep);
 158   static bool deflate_monitor(ObjectMonitor* mid, oop obj,
 159                               ObjectMonitor** freeHeadp,
 160                               ObjectMonitor** freeTailp);
 161   static bool deflate_monitor_using_JT(ObjectMonitor* mid,
 162                                        ObjectMonitor** freeHeadp,
 163                                        ObjectMonitor** freeTailp);




 124   // NOTE: It may cause monitor inflation
 125   static intptr_t identity_hash_value_for(Handle obj);
 126   static intptr_t FastHashCode(Thread * Self, oop obj);
 127 
 128   // java.lang.Thread support
 129   static bool current_thread_holds_lock(JavaThread* thread, Handle h_obj);
 130   static LockOwnership query_lock_ownership(JavaThread * self, Handle h_obj);
 131 
 132   static JavaThread* get_lock_owner(ThreadsList * t_list, Handle h_obj);
 133 
 134   // JNI detach support
 135   static void release_monitors_owned_by_thread(TRAPS);
 136   static void monitors_iterate(MonitorClosure* m);
 137 
 138   // GC: we current use aggressive monitor deflation policy
 139   // Basically we deflate all monitors that are not busy.
 140   // An adaptive profile-based deflation policy could be used if needed
 141   static void deflate_idle_monitors(DeflateMonitorCounters* counters);
 142   static void deflate_global_idle_monitors_using_JT();
 143   static void deflate_per_thread_idle_monitors_using_JT();
 144   static void deflate_common_idle_monitors_using_JT(bool is_global, JavaThread * self);
 145   static void deflate_thread_local_monitors(Thread* thread, DeflateMonitorCounters* counters);
 146   static void prepare_deflate_idle_monitors(DeflateMonitorCounters* counters);
 147   static void finish_deflate_idle_monitors(DeflateMonitorCounters* counters);
 148 
 149   // For a given monitor list: global or per-thread, deflate idle monitors
 150   static int deflate_monitor_list(ObjectMonitor** listheadp,
 151                                   ObjectMonitor** freeHeadp,
 152                                   ObjectMonitor** freeTailp);
 153   // For a given in-use monitor list: global or per-thread, deflate idle
 154   // monitors using a JavaThread.
 155   static int deflate_monitor_list_using_JT(ObjectMonitor** listHeadp,
 156                                            ObjectMonitor** freeHeadp,
 157                                            ObjectMonitor** freeTailp,
 158                                            ObjectMonitor** savedMidInUsep);
 159   static bool deflate_monitor(ObjectMonitor* mid, oop obj,
 160                               ObjectMonitor** freeHeadp,
 161                               ObjectMonitor** freeTailp);
 162   static bool deflate_monitor_using_JT(ObjectMonitor* mid,
 163                                        ObjectMonitor** freeHeadp,
 164                                        ObjectMonitor** freeTailp);


< prev index next >