< prev index next >
src/hotspot/share/utilities/concurrentHashTable.inline.hpp
Print this page
*** 143,153 ****
)
{
if (is_locked()) {
return false;
}
! if (Atomic::cmpxchg(node, &_first, expect) == expect) {
return true;
}
return false;
}
--- 143,153 ----
)
{
if (is_locked()) {
return false;
}
! if (Atomic::cmpxchg(&_first, expect, node) == expect) {
return true;
}
return false;
}
*** 158,168 ****
if (is_locked()) {
return false;
}
// We will expect a clean first pointer.
Node* tmp = first();
! if (Atomic::cmpxchg(set_state(tmp, STATE_LOCK_BIT), &_first, tmp) == tmp) {
return true;
}
return false;
}
--- 158,168 ----
if (is_locked()) {
return false;
}
// We will expect a clean first pointer.
Node* tmp = first();
! if (Atomic::cmpxchg(&_first, tmp, set_state(tmp, STATE_LOCK_BIT)) == tmp) {
return true;
}
return false;
}
< prev index next >