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) 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.AtomicHelperAbstractFuture.Waiter.thread field.putThread in class AbstractFuture.AtomicHelpervoid putNext(AbstractFuture.Waiter waiter, AbstractFuture.Waiter newValue)
AbstractFuture.AtomicHelperAbstractFuture.Waiter.next field.putNext in class AbstractFuture.AtomicHelperboolean casWaiters(AbstractFuture<?> future, AbstractFuture.Waiter expect, AbstractFuture.Waiter update)
AbstractFuture.AtomicHelperAbstractFuture.waiters field.casWaiters in class AbstractFuture.AtomicHelperboolean casListeners(AbstractFuture<?> future, AbstractFuture.Listener expect, AbstractFuture.Listener update)
AbstractFuture.AtomicHelperAbstractFuture.listeners field.casListeners in class AbstractFuture.AtomicHelperboolean casValue(AbstractFuture<?> future, java.lang.Object expect, java.lang.Object update)
AbstractFuture.AtomicHelperAbstractFuture.value field.casValue in class AbstractFuture.AtomicHelper