8354448: [REDO] Remove friends for ObjectMonitor

Reviewed-by: kbarrett, shade, dholmes
This commit is contained in:
Coleen Phillimore 2025-04-15 11:49:58 +00:00
parent 5fc18f5b8a
commit 273a9a6155
3 changed files with 9 additions and 7 deletions

View File

@ -148,9 +148,6 @@ class ObjectWaiter : public CHeapObj<mtThread> {
#define OM_CACHE_LINE_SIZE DEFAULT_CACHE_LINE_SIZE
class ObjectMonitor : public CHeapObj<mtObjectMonitor> {
friend class LightweightSynchronizer;
friend class ObjectSynchronizer;
friend class ObjectWaiter;
friend class VMStructs;
JVMCI_ONLY(friend class JVMCIVMStructs;)
@ -334,6 +331,7 @@ class ObjectMonitor : public CHeapObj<mtObjectMonitor> {
void add_to_contentions(int value);
intx recursions() const { return _recursions; }
void set_recursions(size_t recursions);
void increment_recursions(JavaThread* current);
// JVM/TI GetObjectMonitorUsage() needs this:
int waiters() const;
@ -424,13 +422,12 @@ class ObjectMonitor : public CHeapObj<mtObjectMonitor> {
bool short_fixed_spin(JavaThread* current, int spin_count, bool adapt);
void exit_epilog(JavaThread* current, ObjectWaiter* Wakee);
public:
// Deflation support
bool deflate_monitor(Thread* current);
private:
void install_displaced_markword_in_object(const oop obj);
// JFR support
public:
static bool is_jfr_excluded(const Klass* monitor_klass);
};

View File

@ -150,6 +150,11 @@ inline void ObjectMonitor::set_recursions(size_t recursions) {
_recursions = checked_cast<intx>(recursions);
}
inline void ObjectMonitor::increment_recursions(JavaThread* current) {
assert(has_owner(current), "must be the owner");
_recursions++;
}
// Clear _owner field; current value must match old_value.
inline void ObjectMonitor::release_clear_owner(JavaThread* old_owner) {
int64_t old_value = owner_id_from(old_owner);

View File

@ -423,7 +423,7 @@ bool ObjectSynchronizer::quick_enter_legacy(oop obj, BasicLock* lock, JavaThread
// Case: TLE inimical operations such as nested/recursive synchronization
if (m->has_owner(current)) {
m->_recursions++;
m->increment_recursions(current);
current->inc_held_monitor_count();
return true;
}
@ -440,7 +440,7 @@ bool ObjectSynchronizer::quick_enter_legacy(oop obj, BasicLock* lock, JavaThread
lock->set_displaced_header(markWord::unused_mark());
if (!m->has_owner() && m->try_set_owner(current)) {
assert(m->_recursions == 0, "invariant");
assert(m->recursions() == 0, "invariant");
current->inc_held_monitor_count();
return true;
}