private static final class AbstractFuture.SafeAtomicHelper extends AbstractFuture.AtomicHelper
AbstractFuture.AtomicHelper based on AtomicReferenceFieldUpdater.| Modifier and Type | Field and Description |
|---|---|
(package private) java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Listener> |
listenersUpdater |
(package private) java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,java.lang.Object> |
valueUpdater |
(package private) java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,AbstractFuture.Waiter> |
waiterNextUpdater |
(package private) java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Waiter> |
waitersUpdater |
(package private) java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,java.lang.Thread> |
waiterThreadUpdater |
| Constructor and Description |
|---|
SafeAtomicHelper(java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,java.lang.Thread> waiterThreadUpdater,
java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,AbstractFuture.Waiter> waiterNextUpdater,
java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Waiter> waitersUpdater,
java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Listener> listenersUpdater,
java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,java.lang.Object> valueUpdater) |
| 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) AbstractFuture.Listener |
gasListeners(AbstractFuture<?> future,
AbstractFuture.Listener update)
Performs a GAS operation on the
AbstractFuture.listeners field. |
(package private) AbstractFuture.Waiter |
gasWaiters(AbstractFuture<?> future,
AbstractFuture.Waiter update)
Performs a GAS 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. |
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,java.lang.Thread> waiterThreadUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,AbstractFuture.Waiter> waiterNextUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Waiter> waitersUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Listener> listenersUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,java.lang.Object> valueUpdater
SafeAtomicHelper(java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,java.lang.Thread> waiterThreadUpdater, java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,AbstractFuture.Waiter> waiterNextUpdater, java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Waiter> waitersUpdater, java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Listener> listenersUpdater, java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,java.lang.Object> valueUpdater)
void putThread(AbstractFuture.Waiter waiter, java.lang.Thread newValue)
AbstractFuture.AtomicHelperAbstractFuture.Waiter.thread field.putThread in class AbstractFuture.AtomicHelpervoid putNext(AbstractFuture.Waiter waiter, @CheckForNull AbstractFuture.Waiter newValue)
AbstractFuture.AtomicHelperAbstractFuture.Waiter.next field.putNext in class AbstractFuture.AtomicHelperboolean casWaiters(AbstractFuture<?> future, @CheckForNull AbstractFuture.Waiter expect, @CheckForNull AbstractFuture.Waiter update)
AbstractFuture.AtomicHelperAbstractFuture.waiters field.casWaiters in class AbstractFuture.AtomicHelperboolean casListeners(AbstractFuture<?> future, @CheckForNull AbstractFuture.Listener expect, AbstractFuture.Listener update)
AbstractFuture.AtomicHelperAbstractFuture.listeners field.casListeners in class AbstractFuture.AtomicHelperAbstractFuture.Listener gasListeners(AbstractFuture<?> future, AbstractFuture.Listener update)
AbstractFuture.listeners field.gasListeners in class AbstractFuture.AtomicHelperAbstractFuture.Waiter gasWaiters(AbstractFuture<?> future, AbstractFuture.Waiter update)
AbstractFuture.waiters field.gasWaiters in class AbstractFuture.AtomicHelperboolean casValue(AbstractFuture<?> future, @CheckForNull java.lang.Object expect, java.lang.Object update)
AbstractFuture.AtomicHelperAbstractFuture.value field.casValue in class AbstractFuture.AtomicHelper