< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahSharedVariables.hpp

Print this page

        

*** 72,90 **** bool try_set() { if (is_set()) { return false; } ! ShenandoahSharedValue old = Atomic::cmpxchg((ShenandoahSharedValue)SET, &value, (ShenandoahSharedValue)UNSET); return old == UNSET; // success } bool try_unset() { if (!is_set()) { return false; } ! ShenandoahSharedValue old = Atomic::cmpxchg((ShenandoahSharedValue)UNSET, &value, (ShenandoahSharedValue)SET); return old == SET; // success } volatile ShenandoahSharedValue* addr_of() { return &value; --- 72,90 ---- bool try_set() { if (is_set()) { return false; } ! 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(&value, (ShenandoahSharedValue)SET, (ShenandoahSharedValue)UNSET); return old == SET; // success } volatile ShenandoahSharedValue* addr_of() { return &value;
*** 123,133 **** // already set return; } ShenandoahSharedValue nv = ov | mask_val; ! if (Atomic::cmpxchg(nv, &value, ov) == ov) { // successfully set return; } } } --- 123,133 ---- // already set return; } ShenandoahSharedValue nv = ov | mask_val; ! if (Atomic::cmpxchg(&value, ov, nv) == ov) { // successfully set return; } } }
*** 141,151 **** // already unset return; } ShenandoahSharedValue nv = ov & ~mask_val; ! if (Atomic::cmpxchg(nv, &value, ov) == ov) { // successfully unset return; } } } --- 141,151 ---- // already unset return; } ShenandoahSharedValue nv = ov & ~mask_val; ! if (Atomic::cmpxchg(&value, ov, nv) == ov) { // successfully unset return; } } }
*** 219,229 **** } 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); } volatile ShenandoahSharedValue* addr_of() { return &value; } --- 219,229 ---- } T cmpxchg(T new_value, T expected) { assert (new_value >= 0, "sanity"); assert (new_value < (sizeof(ShenandoahSharedValue) * CHAR_MAX), "sanity"); ! return (T)Atomic::cmpxchg(&value, (ShenandoahSharedValue)expected, (ShenandoahSharedValue)new_value); } volatile ShenandoahSharedValue* addr_of() { return &value; }
< prev index next >