Unsafe class. All the methods in this
class accept one or more MemorySessionImpl parameter, which is used to validate as to whether access to memory
can be performed in a safe fashion - more specifically, to ensure that the memory being accessed has not
already been released (which would result in a hard VM crash).
Accessing and releasing memory from a single thread is not problematic - after all, a given thread cannot, at the same time, access a memory region and free it. But ensuring correctness of memory access when multiple threads are involved is much trickier, as there can be cases where a thread is accessing a memory region while another thread is releasing it.
This class provides tools to manage races when multiple threads are accessing and/or releasing the same memory
session concurrently. More specifically, when a thread wants to release a memory session, it should call the
ScopedMemoryAccess#closeScope(MemorySessionImpl) method. This method initiates thread-local handshakes with all the other VM threads,
which are then stopped one by one. If any thread is found accessing a resource associated to the very memory session
being closed, the handshake fails, and the session will not be closed.
This synchronization strategy relies on the idea that accessing memory is atomic with respect to checking the
validity of the session associated with that memory region - that is, a thread that wants to perform memory access will be
suspended either before a liveness check or after the memory access. To ensure this atomicity,
all methods in this class are marked with the special Scoped annotation, which is recognized by the VM,
and used during the thread-local handshake to detect (and stop) threads performing potentially problematic memory access
operations. Additionally, to make sure that the session object(s) of the memory being accessed is always
reachable during an access operation, all the methods in this class add reachability fences around the underlying
unsafe access.
This form of synchronization allows APIs to use plain memory access without any other form of synchronization which might be deemed to expensive; in other words, this approach prioritizes the performance of memory access over that of releasing a shared memory resource.
| Modifier and Type | Class and Description |
|---|---|
| pack-priv static @interface | |
| public static class |
| Modifier and Type | Field and Description |
|---|---|
| private static final ScopedMemoryAccess | |
| private static final Unsafe |
| Access | Constructor and Description |
|---|---|
| private |
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| pack-priv native void | |
| public boolean | compareAndExchangeBoolean(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| public boolean | compareAndExchangeBooleanAcquire(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| private boolean | compareAndExchangeBooleanAcquireInternal(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| private boolean | compareAndExchangeBooleanInternal(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| public boolean | compareAndExchangeBooleanRelease(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| private boolean | compareAndExchangeBooleanReleaseInternal(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| public byte | compareAndExchangeByte(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| public byte | compareAndExchangeByteAcquire(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| private byte | compareAndExchangeByteAcquireInternal(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| private byte | compareAndExchangeByteInternal(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| public byte | compareAndExchangeByteRelease(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| private byte | compareAndExchangeByteReleaseInternal(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| public char | compareAndExchangeChar(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| public char | compareAndExchangeCharAcquire(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| private char | compareAndExchangeCharAcquireInternal(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| private char | compareAndExchangeCharInternal(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| public char | compareAndExchangeCharRelease(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| private char | compareAndExchangeCharReleaseInternal(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| public double | compareAndExchangeDouble(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| public double | compareAndExchangeDoubleAcquire(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| private double | compareAndExchangeDoubleAcquireInternal(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| private double | compareAndExchangeDoubleInternal(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| public double | compareAndExchangeDoubleRelease(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| private double | compareAndExchangeDoubleReleaseInternal(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| public float | compareAndExchangeFloat(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| public float | compareAndExchangeFloatAcquire(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| private float | compareAndExchangeFloatAcquireInternal(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| private float | compareAndExchangeFloatInternal(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| public float | compareAndExchangeFloatRelease(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| private float | compareAndExchangeFloatReleaseInternal(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| public int | |
| public int | compareAndExchangeIntAcquire(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| private int | compareAndExchangeIntAcquireInternal(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| private int | compareAndExchangeIntInternal(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| public int | compareAndExchangeIntRelease(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| private int | compareAndExchangeIntReleaseInternal(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| public long | compareAndExchangeLong(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| public long | compareAndExchangeLongAcquire(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| private long | compareAndExchangeLongAcquireInternal(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| private long | compareAndExchangeLongInternal(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| public long | compareAndExchangeLongRelease(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| private long | compareAndExchangeLongReleaseInternal(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| public short | compareAndExchangeShort(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| public short | compareAndExchangeShortAcquire(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| private short | compareAndExchangeShortAcquireInternal(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| private short | compareAndExchangeShortInternal(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| public short | compareAndExchangeShortRelease(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| private short | compareAndExchangeShortReleaseInternal(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| public boolean | compareAndSetBoolean(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| private boolean | compareAndSetBooleanInternal(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| public boolean | |
| private boolean | compareAndSetByteInternal(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| public boolean | |
| private boolean | compareAndSetCharInternal(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| public boolean | compareAndSetDouble(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| private boolean | compareAndSetDoubleInternal(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| public boolean | compareAndSetFloat(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| private boolean | compareAndSetFloatInternal(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| public boolean | |
| private boolean | compareAndSetIntInternal(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| public boolean | |
| private boolean | compareAndSetLongInternal(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| public boolean | compareAndSetShort(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| private boolean | compareAndSetShortInternal(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| public void | copyMemory(MemorySessionImpl srcSession, MemorySessionImpl dstSession, Object srcBase, long srcOffset, Object destBase, long destOffset, long bytes)
|
| private void | copyMemoryInternal(MemorySessionImpl srcSession, MemorySessionImpl dstSession, Object srcBase, long srcOffset, Object destBase, long destOffset, long bytes)
|
| public void | copySwapMemory(MemorySessionImpl srcSession, MemorySessionImpl dstSession, Object srcBase, long srcOffset, Object destBase, long destOffset, long bytes, long elemSize)
|
| private void | copySwapMemoryInternal(MemorySessionImpl srcSession, MemorySessionImpl dstSession, Object srcBase, long srcOffset, Object destBase, long destOffset, long bytes, long elemSize)
|
| public void | force(MemorySessionImpl session, MappedMemoryUtilsProxy mappedUtils, FileDescriptor fd, long address, boolean isSync, long index, long length)
|
| public void | forceInternal(MemorySessionImpl session, MappedMemoryUtilsProxy mappedUtils, FileDescriptor fd, long address, boolean isSync, long index, long length)
|
| public byte | |
| public byte | |
| private byte | |
| private byte | |
| public byte | |
| private byte | |
| public char | |
| public char | |
| private char | |
| private char | |
| public char | |
| private char | |
| public double | |
| public double | |
| private double | |
| private double | |
| public double | |
| private double | |
| public float | |
| public float | |
| private float | |
| private float | |
| public float | |
| private float | |
| public int | |
| public int | |
| private int | |
| private int | |
| public int | |
| private int | |
| public long | |
| public long | |
| private long | |
| private long | |
| public long | |
| private long | |
| public short | |
| public short | |
| private short | |
| private short | |
| public short | |
| private short | |
| public boolean | |
| public boolean | |
| private boolean | getAndBitwiseAndBooleanAcquireInternal(MemorySessionImpl session, Object base, long offset, boolean value)
|
| private boolean | |
| public boolean | |
| private boolean | getAndBitwiseAndBooleanReleaseInternal(MemorySessionImpl session, Object base, long offset, boolean value)
|
| public byte | |
| public byte | |
| private byte | getAndBitwiseAndByteAcquireInternal(MemorySessionImpl session, Object base, long offset, byte value)
|
| private byte | |
| public byte | |
| private byte | getAndBitwiseAndByteReleaseInternal(MemorySessionImpl session, Object base, long offset, byte value)
|
| public char | |
| public char | |
| private char | getAndBitwiseAndCharAcquireInternal(MemorySessionImpl session, Object base, long offset, char value)
|
| private char | |
| public char | |
| private char | getAndBitwiseAndCharReleaseInternal(MemorySessionImpl session, Object base, long offset, char value)
|
| public int | |
| public int | |
| private int | |
| private int | |
| public int | |
| private int | |
| public long | |
| public long | |
| private long | getAndBitwiseAndLongAcquireInternal(MemorySessionImpl session, Object base, long offset, long value)
|
| private long | |
| public long | |
| private long | getAndBitwiseAndLongReleaseInternal(MemorySessionImpl session, Object base, long offset, long value)
|
| public short | |
| public short | |
| private short | getAndBitwiseAndShortAcquireInternal(MemorySessionImpl session, Object base, long offset, short value)
|
| private short | |
| public short | |
| private short | getAndBitwiseAndShortReleaseInternal(MemorySessionImpl session, Object base, long offset, short value)
|
| public boolean | |
| public boolean | |
| private boolean | getAndBitwiseOrBooleanAcquireInternal(MemorySessionImpl session, Object base, long offset, boolean value)
|
| private boolean | |
| public boolean | |
| private boolean | getAndBitwiseOrBooleanReleaseInternal(MemorySessionImpl session, Object base, long offset, boolean value)
|
| public byte | |
| public byte | |
| private byte | |
| private byte | |
| public byte | |
| private byte | |
| public char | |
| public char | |
| private char | |
| private char | |
| public char | |
| private char | |
| public int | |
| public int | |
| private int | |
| private int | |
| public int | |
| private int | |
| public long | |
| public long | |
| private long | |
| private long | |
| public long | |
| private long | |
| public short | |
| public short | |
| private short | getAndBitwiseOrShortAcquireInternal(MemorySessionImpl session, Object base, long offset, short value)
|
| private short | |
| public short | |
| private short | getAndBitwiseOrShortReleaseInternal(MemorySessionImpl session, Object base, long offset, short value)
|
| public boolean | |
| public boolean | |
| private boolean | getAndBitwiseXorBooleanAcquireInternal(MemorySessionImpl session, Object base, long offset, boolean value)
|
| private boolean | |
| public boolean | |
| private boolean | getAndBitwiseXorBooleanReleaseInternal(MemorySessionImpl session, Object base, long offset, boolean value)
|
| public byte | |
| public byte | |
| private byte | getAndBitwiseXorByteAcquireInternal(MemorySessionImpl session, Object base, long offset, byte value)
|
| private byte | |
| public byte | |
| private byte | getAndBitwiseXorByteReleaseInternal(MemorySessionImpl session, Object base, long offset, byte value)
|
| public char | |
| public char | |
| private char | getAndBitwiseXorCharAcquireInternal(MemorySessionImpl session, Object base, long offset, char value)
|
| private char | |
| public char | |
| private char | getAndBitwiseXorCharReleaseInternal(MemorySessionImpl session, Object base, long offset, char value)
|
| public int | |
| public int | |
| private int | |
| private int | |
| public int | |
| private int | |
| public long | |
| public long | |
| private long | getAndBitwiseXorLongAcquireInternal(MemorySessionImpl session, Object base, long offset, long value)
|
| private long | |
| public long | |
| private long | getAndBitwiseXorLongReleaseInternal(MemorySessionImpl session, Object base, long offset, long value)
|
| public short | |
| public short | |
| private short | getAndBitwiseXorShortAcquireInternal(MemorySessionImpl session, Object base, long offset, short value)
|
| private short | |
| public short | |
| private short | getAndBitwiseXorShortReleaseInternal(MemorySessionImpl session, Object base, long offset, short value)
|
| public boolean | |
| public boolean | |
| private boolean | |
| private boolean | |
| public boolean | |
| private boolean | |
| public byte | |
| public byte | |
| private byte | |
| private byte | |
| public byte | |
| private byte | |
| public char | |
| public char | |
| private char | |
| private char | |
| public char | |
| private char | |
| public double | |
| public double | |
| private double | |
| private double | |
| public double | |
| private double | |
| public float | |
| public float | |
| private float | |
| private float | |
| public float | |
| private float | |
| public int | |
| public int | |
| private int | |
| private int | |
| public int | |
| private int | |
| public long | |
| public long | |
| private long | |
| private long | |
| public long | |
| private long | |
| public short | |
| public short | |
| private short | |
| private short | |
| public short | |
| private short | |
| public boolean | |
| public boolean | |
| private boolean | |
| private boolean | |
| public boolean | |
| private boolean | |
| public boolean | |
| private boolean | |
| public byte | |
| public byte | |
| private byte | |
| private byte | |
| public byte | |
| private byte | |
| public byte | |
| private byte | |
| public char | |
| public char | |
| private char | |
| private char | |
| public char | |
| private char | |
| public char | |
| private char | |
| public char | |
| private char | |
| public double | |
| public double | |
| private double | |
| private double | |
| public double | |
| private double | |
| public double | |
| private double | |
| public float | |
| public float | |
| private float | |
| private float | |
| public float | |
| private float | |
| public float | |
| private float | |
| public int | |
| public int | |
| private int | |
| private int | |
| public int | |
| private int | |
| public int | |
| private int | |
| public int | |
| private int | |
| public long | |
| public long | |
| private long | |
| private long | |
| public long | |
| private long | |
| public long | |
| private long | |
| public long | |
| private long | |
| public static ScopedMemoryAccess | |
| public short | |
| public short | |
| private short | |
| private short | |
| public short | |
| private short | |
| public short | |
| private short | |
| public short | |
| private short | |
| public boolean | isLoaded(MemorySessionImpl session, MappedMemoryUtilsProxy mappedUtils, long address, boolean isSync, long size)
|
| public boolean | isLoadedInternal(MemorySessionImpl session, MappedMemoryUtilsProxy mappedUtils, long address, boolean isSync, long size)
|
| public void | load(MemorySessionImpl session, MappedMemoryUtilsProxy mappedUtils, long address, boolean isSync, long size)
|
| public static <V extends VectorSupport. | loadFromMemorySegment(Class<? extends V> vmClass, int laneType, int length, AbstractMemorySegmentImpl msp, long offset, S s, VectorSupport.
|
| public static <V extends VectorSupport. | loadFromMemorySegmentMasked(Class<? extends V> vmClass, Class<M> maskClass, int laneType, int length, AbstractMemorySegmentImpl msp, long offset, M m, S s, int offsetInRange, VectorSupport.
|
| private static <V extends VectorSupport. | loadFromMemorySegmentMaskedScopedInternal(MemorySessionImpl session, Class<? extends V> vmClass, Class<M> maskClass, int laneType, int length, AbstractMemorySegmentImpl msp, long offset, M m, S s, int offsetInRange, VectorSupport.
|
| private static <V extends VectorSupport. | loadFromMemorySegmentScopedInternal(MemorySessionImpl session, Class<? extends V> vmClass, int laneType, int length, AbstractMemorySegmentImpl msp, long offset, S s, VectorSupport.
|
| public void | loadInternal(MemorySessionImpl session, MappedMemoryUtilsProxy mappedUtils, long address, boolean isSync, long size)
|
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | putCharUnalignedInternal(MemorySessionImpl session, Object base, long offset, char value, boolean be)
|
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | putLongUnalignedInternal(MemorySessionImpl session, Object base, long offset, long value, boolean be)
|
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | |
| public void | |
| private void | putShortUnalignedInternal(MemorySessionImpl session, Object base, long offset, short value, boolean be)
|
| public void | |
| private void | |
| private static native void | |
| public void | |
| private void | |
| public static <V extends VectorSupport. | storeIntoMemorySegment(Class<? extends V> vmClass, int laneType, int length, V v, AbstractMemorySegmentImpl msp, long offset, VectorSupport.
|
| public static <V extends VectorSupport. | storeIntoMemorySegmentMasked(Class<? extends V> vmClass, Class<M> maskClass, int laneType, int length, V v, M m, AbstractMemorySegmentImpl msp, long offset, VectorSupport.
|
| private static <V extends VectorSupport. | storeIntoMemorySegmentMaskedScopedInternal(MemorySessionImpl session, Class<? extends V> vmClass, Class<M> maskClass, int laneType, int length, V v, M m, AbstractMemorySegmentImpl msp, long offset, VectorSupport.
|
| private static <V extends VectorSupport. | storeIntoMemorySegmentScopedInternal(MemorySessionImpl session, Class<? extends V> vmClass, int laneType, int length, V v, AbstractMemorySegmentImpl msp, long offset, VectorSupport.
|
| public void | unload(MemorySessionImpl session, MappedMemoryUtilsProxy mappedUtils, long address, boolean isSync, long size)
|
| public void | unloadInternal(MemorySessionImpl session, MappedMemoryUtilsProxy mappedUtils, long address, boolean isSync, long size)
|
| public int | vectorizedMismatch(MemorySessionImpl aSession, MemorySessionImpl bSession, Object a, long aOffset, Object b, long bOffset, int length, int log2ArrayIndexScale)
|
| private int | vectorizedMismatchInternal(MemorySessionImpl aSession, MemorySessionImpl bSession, Object a, long aOffset, Object b, long bOffset, int length, int log2ArrayIndexScale)
|
| public boolean | weakCompareAndSetBoolean(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| public boolean | weakCompareAndSetBooleanAcquire(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| private boolean | weakCompareAndSetBooleanAcquireInternal(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| private boolean | weakCompareAndSetBooleanInternal(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| public boolean | weakCompareAndSetBooleanPlain(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| private boolean | weakCompareAndSetBooleanPlainInternal(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| public boolean | weakCompareAndSetBooleanRelease(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| private boolean | weakCompareAndSetBooleanReleaseInternal(MemorySessionImpl session, Object base, long offset, boolean expected, boolean value)
|
| public boolean | weakCompareAndSetByte(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| public boolean | weakCompareAndSetByteAcquire(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| private boolean | weakCompareAndSetByteAcquireInternal(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| private boolean | weakCompareAndSetByteInternal(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| public boolean | weakCompareAndSetBytePlain(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| private boolean | weakCompareAndSetBytePlainInternal(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| public boolean | weakCompareAndSetByteRelease(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| private boolean | weakCompareAndSetByteReleaseInternal(MemorySessionImpl session, Object base, long offset, byte expected, byte value)
|
| public boolean | weakCompareAndSetChar(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| public boolean | weakCompareAndSetCharAcquire(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| private boolean | weakCompareAndSetCharAcquireInternal(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| private boolean | weakCompareAndSetCharInternal(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| public boolean | weakCompareAndSetCharPlain(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| private boolean | weakCompareAndSetCharPlainInternal(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| public boolean | weakCompareAndSetCharRelease(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| private boolean | weakCompareAndSetCharReleaseInternal(MemorySessionImpl session, Object base, long offset, char expected, char value)
|
| public boolean | weakCompareAndSetDouble(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| public boolean | weakCompareAndSetDoubleAcquire(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| private boolean | weakCompareAndSetDoubleAcquireInternal(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| private boolean | weakCompareAndSetDoubleInternal(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| public boolean | weakCompareAndSetDoublePlain(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| private boolean | weakCompareAndSetDoublePlainInternal(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| public boolean | weakCompareAndSetDoubleRelease(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| private boolean | weakCompareAndSetDoubleReleaseInternal(MemorySessionImpl session, Object base, long offset, double expected, double value)
|
| public boolean | weakCompareAndSetFloat(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| public boolean | weakCompareAndSetFloatAcquire(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| private boolean | weakCompareAndSetFloatAcquireInternal(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| private boolean | weakCompareAndSetFloatInternal(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| public boolean | weakCompareAndSetFloatPlain(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| private boolean | weakCompareAndSetFloatPlainInternal(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| public boolean | weakCompareAndSetFloatRelease(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| private boolean | weakCompareAndSetFloatReleaseInternal(MemorySessionImpl session, Object base, long offset, float expected, float value)
|
| public boolean | |
| public boolean | weakCompareAndSetIntAcquire(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| private boolean | weakCompareAndSetIntAcquireInternal(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| private boolean | weakCompareAndSetIntInternal(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| public boolean | weakCompareAndSetIntPlain(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| private boolean | weakCompareAndSetIntPlainInternal(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| public boolean | weakCompareAndSetIntRelease(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| private boolean | weakCompareAndSetIntReleaseInternal(MemorySessionImpl session, Object base, long offset, int expected, int value)
|
| public boolean | weakCompareAndSetLong(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| public boolean | weakCompareAndSetLongAcquire(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| private boolean | weakCompareAndSetLongAcquireInternal(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| private boolean | weakCompareAndSetLongInternal(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| public boolean | weakCompareAndSetLongPlain(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| private boolean | weakCompareAndSetLongPlainInternal(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| public boolean | weakCompareAndSetLongRelease(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| private boolean | weakCompareAndSetLongReleaseInternal(MemorySessionImpl session, Object base, long offset, long expected, long value)
|
| public boolean | weakCompareAndSetShort(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| public boolean | weakCompareAndSetShortAcquire(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| private boolean | weakCompareAndSetShortAcquireInternal(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| private boolean | weakCompareAndSetShortInternal(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| public boolean | weakCompareAndSetShortPlain(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| private boolean | weakCompareAndSetShortPlainInternal(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| public boolean | weakCompareAndSetShortRelease(MemorySessionImpl session, Object base, long offset, short expected, short value)
|
| private boolean | weakCompareAndSetShortReleaseInternal(MemorySessionImpl session, Object base, long offset, short expected, short value)
|