Skip to content

Commit 273a9a6

Browse files
committed
8354448: [REDO] Remove friends for ObjectMonitor
Reviewed-by: kbarrett, shade, dholmes
1 parent 5fc18f5 commit 273a9a6

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

src/hotspot/share/runtime/objectMonitor.hpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,6 @@ class ObjectWaiter : public CHeapObj<mtThread> {
148148
#define OM_CACHE_LINE_SIZE DEFAULT_CACHE_LINE_SIZE
149149

150150
class ObjectMonitor : public CHeapObj<mtObjectMonitor> {
151-
friend class LightweightSynchronizer;
152-
friend class ObjectSynchronizer;
153-
friend class ObjectWaiter;
154151
friend class VMStructs;
155152
JVMCI_ONLY(friend class JVMCIVMStructs;)
156153

@@ -334,6 +331,7 @@ class ObjectMonitor : public CHeapObj<mtObjectMonitor> {
334331
void add_to_contentions(int value);
335332
intx recursions() const { return _recursions; }
336333
void set_recursions(size_t recursions);
334+
void increment_recursions(JavaThread* current);
337335

338336
// JVM/TI GetObjectMonitorUsage() needs this:
339337
int waiters() const;
@@ -424,13 +422,12 @@ class ObjectMonitor : public CHeapObj<mtObjectMonitor> {
424422
bool short_fixed_spin(JavaThread* current, int spin_count, bool adapt);
425423
void exit_epilog(JavaThread* current, ObjectWaiter* Wakee);
426424

425+
public:
427426
// Deflation support
428427
bool deflate_monitor(Thread* current);
429-
private:
430428
void install_displaced_markword_in_object(const oop obj);
431429

432430
// JFR support
433-
public:
434431
static bool is_jfr_excluded(const Klass* monitor_klass);
435432
};
436433

src/hotspot/share/runtime/objectMonitor.inline.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,11 @@ inline void ObjectMonitor::set_recursions(size_t recursions) {
150150
_recursions = checked_cast<intx>(recursions);
151151
}
152152

153+
inline void ObjectMonitor::increment_recursions(JavaThread* current) {
154+
assert(has_owner(current), "must be the owner");
155+
_recursions++;
156+
}
157+
153158
// Clear _owner field; current value must match old_value.
154159
inline void ObjectMonitor::release_clear_owner(JavaThread* old_owner) {
155160
int64_t old_value = owner_id_from(old_owner);

src/hotspot/share/runtime/synchronizer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ bool ObjectSynchronizer::quick_enter_legacy(oop obj, BasicLock* lock, JavaThread
423423
// Case: TLE inimical operations such as nested/recursive synchronization
424424

425425
if (m->has_owner(current)) {
426-
m->_recursions++;
426+
m->increment_recursions(current);
427427
current->inc_held_monitor_count();
428428
return true;
429429
}
@@ -440,7 +440,7 @@ bool ObjectSynchronizer::quick_enter_legacy(oop obj, BasicLock* lock, JavaThread
440440
lock->set_displaced_header(markWord::unused_mark());
441441

442442
if (!m->has_owner() && m->try_set_owner(current)) {
443-
assert(m->_recursions == 0, "invariant");
443+
assert(m->recursions() == 0, "invariant");
444444
current->inc_held_monitor_count();
445445
return true;
446446
}

0 commit comments

Comments
 (0)