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) 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.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.AtomicHelper
AbstractFuture.waiters
field.casWaiters
in class AbstractFuture.AtomicHelper
boolean casListeners(AbstractFuture<?> future, AbstractFuture.Listener expect, AbstractFuture.Listener update)
AbstractFuture.AtomicHelper
AbstractFuture.listeners
field.casListeners
in class AbstractFuture.AtomicHelper
boolean casValue(AbstractFuture<?> future, java.lang.Object expect, java.lang.Object update)
AbstractFuture.AtomicHelper
AbstractFuture.value
field.casValue
in class AbstractFuture.AtomicHelper