Språk

VarHandle.CompareAndExchangeRelease(Object[]) Method

Definition

Atomically sets the value of a variable to the newValue with the memory semantics of setRelease(java.lang.Object...) if the variable's current value, referred to as the witness value, == the expectedValue, as accessed with the memory semantics of get(java.lang.Object...).

[Android.Runtime.Register("compareAndExchangeRelease", "([Ljava/lang/Object;)Ljava/lang/Object;", "", ApiSince=33)]
public Java.Lang.Object? CompareAndExchangeRelease(params Java.Lang.Object[]? args);
[<Android.Runtime.Register("compareAndExchangeRelease", "([Ljava/lang/Object;)Ljava/lang/Object;", "", ApiSince=33)>]
member this.CompareAndExchangeRelease : Java.Lang.Object[] -> Java.Lang.Object

Parameters

args
Object[]

the signature-polymorphic parameter list of the form (CT1 ct1,..., CTn ctn, T expectedValue, T newValue), statically represented using varargs.

Returns

the signature-polymorphic result that is the witness value, which will be the same as the expectedValue if successful, statically represented using Object.

Attributes

Remarks

Atomically sets the value of a variable to the newValue with the memory semantics of setRelease(java.lang.Object...) if the variable's current value, referred to as the witness value, == the expectedValue, as accessed with the memory semantics of get(java.lang.Object...). The method signature is of the form (CT1 ct1,..., CTn ctn, T expectedValue, T newValue)T. The symbolic type descriptor at the call site of compareAndExchangeRelease must match the access mode type that is the result of calling accessModeType(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_RELEASE) on this VarHandle.

Java reference for java.lang.invoke.VarHandle.compareAndExchangeRelease.

Applies to