58 static inline bool fast_lock_try_enter(oop obj, LockStack& lock_stack, JavaThread* current);
59 static bool fast_lock_spin_enter(oop obj, LockStack& lock_stack, JavaThread* current, bool observed_deflation);
60
61 public:
62 static void enter_for(Handle obj, BasicLock* lock, JavaThread* locking_thread);
63 static void enter(Handle obj, BasicLock* lock, JavaThread* current);
64 static void exit(oop object, JavaThread* current);
65
66 static ObjectMonitor* inflate_into_object_header(oop object, ObjectSynchronizer::InflateCause cause, JavaThread* locking_thread, Thread* current);
67 static ObjectMonitor* inflate_locked_or_imse(oop object, ObjectSynchronizer::InflateCause cause, TRAPS);
68 static ObjectMonitor* inflate_fast_locked_object(oop object, ObjectSynchronizer::InflateCause cause, JavaThread* locking_thread, JavaThread* current);
69 static ObjectMonitor* inflate_and_enter(oop object, ObjectSynchronizer::InflateCause cause, JavaThread* locking_thread, JavaThread* current);
70
71 static void deflate_monitor(Thread* current, oop obj, ObjectMonitor* monitor);
72
73 static ObjectMonitor* get_monitor_from_table(Thread* current, oop obj);
74
75 static bool contains_monitor(Thread* current, ObjectMonitor* monitor);
76
77 static bool quick_enter(oop obj, BasicLock* Lock, JavaThread* current);
78 };
79
80 #endif // SHARE_RUNTIME_LIGHTWEIGHTSYNCHRONIZER_HPP
|
58 static inline bool fast_lock_try_enter(oop obj, LockStack& lock_stack, JavaThread* current);
59 static bool fast_lock_spin_enter(oop obj, LockStack& lock_stack, JavaThread* current, bool observed_deflation);
60
61 public:
62 static void enter_for(Handle obj, BasicLock* lock, JavaThread* locking_thread);
63 static void enter(Handle obj, BasicLock* lock, JavaThread* current);
64 static void exit(oop object, JavaThread* current);
65
66 static ObjectMonitor* inflate_into_object_header(oop object, ObjectSynchronizer::InflateCause cause, JavaThread* locking_thread, Thread* current);
67 static ObjectMonitor* inflate_locked_or_imse(oop object, ObjectSynchronizer::InflateCause cause, TRAPS);
68 static ObjectMonitor* inflate_fast_locked_object(oop object, ObjectSynchronizer::InflateCause cause, JavaThread* locking_thread, JavaThread* current);
69 static ObjectMonitor* inflate_and_enter(oop object, ObjectSynchronizer::InflateCause cause, JavaThread* locking_thread, JavaThread* current);
70
71 static void deflate_monitor(Thread* current, oop obj, ObjectMonitor* monitor);
72
73 static ObjectMonitor* get_monitor_from_table(Thread* current, oop obj);
74
75 static bool contains_monitor(Thread* current, ObjectMonitor* monitor);
76
77 static bool quick_enter(oop obj, BasicLock* Lock, JavaThread* current);
78
79 // NOTE: May not cause monitor inflation
80 static uint32_t get_hash(markWord mark, oop obj);
81 // For CDS path.
82 static uint32_t get_hash(markWord mark, oop obj, Klass* klass);
83 };
84
85 #endif // SHARE_RUNTIME_LIGHTWEIGHTSYNCHRONIZER_HPP
|