private static final class AbstractFuture.UnsafeAtomicHelper extends AbstractFuture.AtomicHelper
AbstractFuture.AtomicHelper
based on Unsafe
.
Static initialization of this class will fail if the Unsafe
object cannot
be accessed.
Modifier and Type | Field and Description |
---|---|
(package private) static long |
LISTENERS_OFFSET |
(package private) static sun.misc.Unsafe |
UNSAFE |
(package private) static long |
VALUE_OFFSET |
(package private) static long |
WAITER_NEXT_OFFSET |
(package private) static long |
WAITER_THREAD_OFFSET |
(package private) static long |
WAITERS_OFFSET |
Modifier | Constructor and Description |
---|---|
private |
UnsafeAtomicHelper() |
Modifier and Type | Method and Description |
---|---|
(package private) boolean |
casListeners(AbstractFuture<?> future,
AbstractFuture.Listener expect,
AbstractFuture.Listener update)
Performs a CAS operation on the
AbstractFuture.listeners field. |
(package private) boolean |
casValue(AbstractFuture<?> future,
java.lang.Object expect,
java.lang.Object update)
Performs a CAS operation on the
AbstractFuture.value field. |
(package private) boolean |
casWaiters(AbstractFuture<?> future,
AbstractFuture.Waiter expect,
AbstractFuture.Waiter update)
Performs a CAS operation on the
AbstractFuture.waiters field. |
(package private) void |
putNext(AbstractFuture.Waiter waiter,
AbstractFuture.Waiter newValue)
Non volatile write of the waiter to the
AbstractFuture.Waiter.next field. |
(package private) void |
putThread(AbstractFuture.Waiter waiter,
java.lang.Thread newValue)
Non volatile write of the thread to the
AbstractFuture.Waiter.thread field. |
static final sun.misc.Unsafe UNSAFE
static final long LISTENERS_OFFSET
static final long WAITERS_OFFSET
static final long VALUE_OFFSET
static final long WAITER_THREAD_OFFSET
static final long WAITER_NEXT_OFFSET
void putThread(AbstractFuture.Waiter waiter, java.lang.Thread newValue)
AbstractFuture.AtomicHelper
AbstractFuture.Waiter.thread
field.putThread
in class AbstractFuture.AtomicHelper
void putNext(AbstractFuture.Waiter waiter, AbstractFuture.Waiter newValue)
AbstractFuture.AtomicHelper
AbstractFuture.Waiter.next
field.putNext
in class AbstractFuture.AtomicHelper
boolean casWaiters(AbstractFuture<?> future, AbstractFuture.Waiter expect, AbstractFuture.Waiter update)
AbstractFuture.waiters
field.casWaiters
in class AbstractFuture.AtomicHelper
boolean casListeners(AbstractFuture<?> future, AbstractFuture.Listener expect, AbstractFuture.Listener update)
AbstractFuture.listeners
field.casListeners
in class AbstractFuture.AtomicHelper
boolean casValue(AbstractFuture<?> future, java.lang.Object expect, java.lang.Object update)
AbstractFuture.value
field.casValue
in class AbstractFuture.AtomicHelper