< prev index next >
src/hotspot/share/prims/jvmtiRawMonitor.cpp
Print this page
rev 47408 : [mq]: no_cmpxchg_if_null
rev 47406 : [mq]: assembler_cmpxchg
rev 47401 : [mq]: cmpxchg_if_null
rev 47400 : [mq]: cmpxchg_ptr
rev 47216 : 8187443: Forest Consolidation: Move files to unified layout
Reviewed-by: darcy, ihse
*** 125,135 ****
//
// -------------------------------------------------------------------------
int JvmtiRawMonitor::SimpleEnter (Thread * Self) {
for (;;) {
! if (Atomic::cmpxchg_if_null((void*)Self, &_owner)) {
return OS_OK ;
}
ObjectWaiter Node (Self) ;
Self->_ParkEvent->reset() ; // strictly optional
--- 125,135 ----
//
// -------------------------------------------------------------------------
int JvmtiRawMonitor::SimpleEnter (Thread * Self) {
for (;;) {
! if (Atomic::cmpxchg((void*)Self, &_owner, (void*)NULL) == NULL) {
return OS_OK ;
}
ObjectWaiter Node (Self) ;
Self->_ParkEvent->reset() ; // strictly optional
*** 137,147 ****
RawMonitor_lock->lock_without_safepoint_check() ;
Node._next = _EntryList ;
_EntryList = &Node ;
OrderAccess::fence() ;
! if (_owner == NULL && Atomic::cmpxchg_if_null((void*)Self, &_owner)) {
_EntryList = Node._next ;
RawMonitor_lock->unlock() ;
return OS_OK ;
}
RawMonitor_lock->unlock() ;
--- 137,147 ----
RawMonitor_lock->lock_without_safepoint_check() ;
Node._next = _EntryList ;
_EntryList = &Node ;
OrderAccess::fence() ;
! if (_owner == NULL && Atomic::cmpxchg((void*)Self, &_owner, (void*)NULL) == NULL) {
_EntryList = Node._next ;
RawMonitor_lock->unlock() ;
return OS_OK ;
}
RawMonitor_lock->unlock() ;
< prev index next >