< prev index next >
src/hotspot/share/runtime/objectMonitor.cpp
Print this page
@@ -914,11 +914,11 @@
for (;;) {
assert(THREAD == _owner, "invariant");
// release semantics: prior loads and stores from within the critical section
// must not float (reorder) past the following store that drops the lock.
- OrderAccess::release_store(&_owner, (void*)NULL); // drop the lock
+ Atomic::release_store(&_owner, (void*)NULL); // drop the lock
OrderAccess::storeload(); // See if we need to wake a successor
if ((intptr_t(_EntryList)|intptr_t(_cxq)) == 0 || _succ != NULL) {
return;
}
// Other threads are blocked trying to acquire the lock.
@@ -1090,11 +1090,11 @@
// The thread associated with Wakee may have grabbed the lock and "Wakee" may be
// out-of-scope (non-extant).
Wakee = NULL;
// Drop the lock
- OrderAccess::release_store(&_owner, (void*)NULL);
+ Atomic::release_store(&_owner, (void*)NULL);
OrderAccess::fence(); // ST _owner vs LD in unpark()
DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
Trigger->unpark();
< prev index next >