@@ -67,7 +67,7 @@ inline bool ObjectMonitor::owner_is_DEFLATER_MARKER() {
67
67
68
68
// Returns true if 'this' is being async deflated and false otherwise.
69
69
inline bool ObjectMonitor::is_being_async_deflated () {
70
- return AsyncDeflateIdleMonitors && contentions () < 0 ;
70
+ return contentions () < 0 ;
71
71
}
72
72
73
73
inline void ObjectMonitor::clear () {
@@ -80,17 +80,15 @@ inline void ObjectMonitor::clear() {
80
80
}
81
81
82
82
inline void ObjectMonitor::clear_common () {
83
- if (AsyncDeflateIdleMonitors) {
84
- // Async deflation protocol uses the header, owner and contentions
85
- // fields. While the ObjectMonitor being deflated is on the global
86
- // free list, we leave those three fields alone; contentions < 0
87
- // will force any racing threads to retry. The header field is used
88
- // by install_displaced_markword_in_object() to restore the object's
89
- // header so we cannot check its value here.
90
- guarantee (_owner == NULL || _owner == DEFLATER_MARKER,
91
- " must be NULL or DEFLATER_MARKER: owner=" INTPTR_FORMAT,
92
- p2i (_owner));
93
- }
83
+ // Async deflation protocol uses the header, owner and contentions
84
+ // fields. While the ObjectMonitor being deflated is on the global
85
+ // free list, we leave those three fields alone; contentions < 0
86
+ // will force any racing threads to retry. The header field is used
87
+ // by install_displaced_markword_in_object() to restore the object's
88
+ // header so we cannot check its value here.
89
+ guarantee (_owner == NULL || _owner == DEFLATER_MARKER,
90
+ " must be NULL or DEFLATER_MARKER: owner=" INTPTR_FORMAT,
91
+ p2i (_owner));
94
92
assert (contentions () <= 0 , " must not be positive: contentions=%d" , contentions ());
95
93
assert (_waiters == 0 , " must be 0: waiters=%d" , _waiters);
96
94
assert (_recursions == 0 , " must be 0: recursions=" INTX_FORMAT, _recursions);
@@ -124,9 +122,11 @@ inline void ObjectMonitor::add_to_contentions(jint value) {
124
122
125
123
// Clear _owner field; current value must match old_value.
126
124
inline void ObjectMonitor::release_clear_owner (void * old_value) {
125
+ #ifdef ASSERT
127
126
void * prev = Atomic::load (&_owner);
128
- ADIM_guarantee (prev == old_value, " unexpected prev owner=" INTPTR_FORMAT
129
- " , expected=" INTPTR_FORMAT, p2i (prev), p2i (old_value));
127
+ assert (prev == old_value, " unexpected prev owner=" INTPTR_FORMAT
128
+ " , expected=" INTPTR_FORMAT, p2i (prev), p2i (old_value));
129
+ #endif
130
130
Atomic::release_store (&_owner, (void *)NULL );
131
131
log_trace (monitorinflation, owner)(" release_clear_owner(): mid="
132
132
INTPTR_FORMAT " , old_value=" INTPTR_FORMAT,
@@ -136,9 +136,11 @@ inline void ObjectMonitor::release_clear_owner(void* old_value) {
136
136
// Simply set _owner field to new_value; current value must match old_value.
137
137
// (Simple means no memory sync needed.)
138
138
inline void ObjectMonitor::set_owner_from (void * old_value, void * new_value) {
139
+ #ifdef ASSERT
139
140
void * prev = Atomic::load (&_owner);
140
- ADIM_guarantee (prev == old_value, " unexpected prev owner=" INTPTR_FORMAT
141
- " , expected=" INTPTR_FORMAT, p2i (prev), p2i (old_value));
141
+ assert (prev == old_value, " unexpected prev owner=" INTPTR_FORMAT
142
+ " , expected=" INTPTR_FORMAT, p2i (prev), p2i (old_value));
143
+ #endif
142
144
Atomic::store (&_owner, new_value);
143
145
log_trace (monitorinflation, owner)(" set_owner_from(): mid="
144
146
INTPTR_FORMAT " , old_value=" INTPTR_FORMAT
@@ -150,10 +152,10 @@ inline void ObjectMonitor::set_owner_from(void* old_value, void* new_value) {
150
152
// (Simple means no memory sync needed.)
151
153
inline void ObjectMonitor::set_owner_from (void * old_value1, void * old_value2, void * new_value) {
152
154
void * prev = Atomic::load (&_owner);
153
- ADIM_guarantee (prev == old_value1 || prev == old_value2,
154
- " unexpected prev owner=" INTPTR_FORMAT " , expected1="
155
- INTPTR_FORMAT " or expected2=" INTPTR_FORMAT, p2i (prev),
156
- p2i (old_value1), p2i (old_value2));
155
+ assert (prev == old_value1 || prev == old_value2,
156
+ " unexpected prev owner=" INTPTR_FORMAT " , expected1="
157
+ INTPTR_FORMAT " or expected2=" INTPTR_FORMAT, p2i (prev),
158
+ p2i (old_value1), p2i (old_value2));
157
159
_owner = new_value;
158
160
log_trace (monitorinflation, owner)(" set_owner_from(old1=" INTPTR_FORMAT
159
161
" , old2=" INTPTR_FORMAT " ): mid="
@@ -165,9 +167,11 @@ inline void ObjectMonitor::set_owner_from(void* old_value1, void* old_value2, vo
165
167
166
168
// Simply set _owner field to self; current value must match basic_lock_p.
167
169
inline void ObjectMonitor::set_owner_from_BasicLock (void * basic_lock_p, Thread* self) {
170
+ #ifdef ASSERT
168
171
void * prev = Atomic::load (&_owner);
169
- ADIM_guarantee (prev == basic_lock_p, " unexpected prev owner=" INTPTR_FORMAT
170
- " , expected=" INTPTR_FORMAT, p2i (prev), p2i (basic_lock_p));
172
+ assert (prev == basic_lock_p, " unexpected prev owner=" INTPTR_FORMAT
173
+ " , expected=" INTPTR_FORMAT, p2i (prev), p2i (basic_lock_p));
174
+ #endif
171
175
// Non-null owner field to non-null owner field is safe without
172
176
// cmpxchg() as long as all readers can tolerate either flavor.
173
177
Atomic::store (&_owner, self);
0 commit comments