private static final class AbstractFuture.SynchronizedHelper extends AbstractFuture.AtomicHelper
AbstractFuture.AtomicHelper
based on synchronized
and volatile writes.
This is an implementation of last resort for when certain basic VM features are broken (like AtomicReferenceFieldUpdater).
Modifier | Constructor and Description |
---|---|
private |
SynchronizedHelper() |
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. |
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, @CheckForNull AbstractFuture.Waiter newValue)
AbstractFuture.AtomicHelper
AbstractFuture.Waiter.next
field.putNext
in class AbstractFuture.AtomicHelper
boolean casWaiters(AbstractFuture<?> future, @CheckForNull AbstractFuture.Waiter expect, @CheckForNull AbstractFuture.Waiter update)
AbstractFuture.AtomicHelper
AbstractFuture.waiters
field.casWaiters
in class AbstractFuture.AtomicHelper
boolean casListeners(AbstractFuture<?> future, @CheckForNull AbstractFuture.Listener expect, AbstractFuture.Listener update)
AbstractFuture.AtomicHelper
AbstractFuture.listeners
field.casListeners
in class AbstractFuture.AtomicHelper
AbstractFuture.Listener gasListeners(AbstractFuture<?> future, AbstractFuture.Listener update)
AbstractFuture.listeners
field.gasListeners
in class AbstractFuture.AtomicHelper
AbstractFuture.Waiter gasWaiters(AbstractFuture<?> future, AbstractFuture.Waiter update)
AbstractFuture.waiters
field.gasWaiters
in class AbstractFuture.AtomicHelper
boolean casValue(AbstractFuture<?> future, @CheckForNull java.lang.Object expect, java.lang.Object update)
AbstractFuture.AtomicHelper
AbstractFuture.value
field.casValue
in class AbstractFuture.AtomicHelper