< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahSharedVariables.hpp
Print this page
@@ -72,19 +72,19 @@
bool try_set() {
if (is_set()) {
return false;
}
- ShenandoahSharedValue old = Atomic::cmpxchg((ShenandoahSharedValue)SET, &value, (ShenandoahSharedValue)UNSET);
+ ShenandoahSharedValue old = Atomic::cmpxchg(&value, (ShenandoahSharedValue)UNSET, (ShenandoahSharedValue)SET);
return old == UNSET; // success
}
bool try_unset() {
if (!is_set()) {
return false;
}
- ShenandoahSharedValue old = Atomic::cmpxchg((ShenandoahSharedValue)UNSET, &value, (ShenandoahSharedValue)SET);
+ ShenandoahSharedValue old = Atomic::cmpxchg(&value, (ShenandoahSharedValue)SET, (ShenandoahSharedValue)UNSET);
return old == SET; // success
}
volatile ShenandoahSharedValue* addr_of() {
return &value;
@@ -123,11 +123,11 @@
// already set
return;
}
ShenandoahSharedValue nv = ov | mask_val;
- if (Atomic::cmpxchg(nv, &value, ov) == ov) {
+ if (Atomic::cmpxchg(&value, ov, nv) == ov) {
// successfully set
return;
}
}
}
@@ -141,11 +141,11 @@
// already unset
return;
}
ShenandoahSharedValue nv = ov & ~mask_val;
- if (Atomic::cmpxchg(nv, &value, ov) == ov) {
+ if (Atomic::cmpxchg(&value, ov, nv) == ov) {
// successfully unset
return;
}
}
}
@@ -219,11 +219,11 @@
}
T cmpxchg(T new_value, T expected) {
assert (new_value >= 0, "sanity");
assert (new_value < (sizeof(ShenandoahSharedValue) * CHAR_MAX), "sanity");
- return (T)Atomic::cmpxchg((ShenandoahSharedValue)new_value, &value, (ShenandoahSharedValue)expected);
+ return (T)Atomic::cmpxchg(&value, (ShenandoahSharedValue)expected, (ShenandoahSharedValue)new_value);
}
volatile ShenandoahSharedValue* addr_of() {
return &value;
}
< prev index next >