Class AbstractFuture.SynchronizedHelper
java.lang.Object
com.google.common.util.concurrent.AbstractFuture.AtomicHelper
com.google.common.util.concurrent.AbstractFuture.SynchronizedHelper
- Enclosing class:
AbstractFuture<V>
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).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) booleancasListeners(AbstractFuture<?> future, AbstractFuture.Listener expect, AbstractFuture.Listener update) Performs a CAS operation on theAbstractFuture.listenersfield.(package private) booleancasValue(AbstractFuture<?> future, Object expect, Object update) Performs a CAS operation on theAbstractFuture.valuefield.(package private) booleancasWaiters(AbstractFuture<?> future, AbstractFuture.Waiter expect, AbstractFuture.Waiter update) Performs a CAS operation on theAbstractFuture.waitersfield.(package private) AbstractFuture.ListenergasListeners(AbstractFuture<?> future, AbstractFuture.Listener update) Performs a GAS operation on theAbstractFuture.listenersfield.(package private) AbstractFuture.WaitergasWaiters(AbstractFuture<?> future, AbstractFuture.Waiter update) Performs a GAS operation on theAbstractFuture.waitersfield.(package private) voidputNext(AbstractFuture.Waiter waiter, AbstractFuture.Waiter newValue) Non-volatile write of the waiter to theAbstractFuture.Waiter.nextfield.(package private) voidputThread(AbstractFuture.Waiter waiter, Thread newValue) Non-volatile write of the thread to theAbstractFuture.Waiter.threadfield.
-
Constructor Details
-
SynchronizedHelper
private SynchronizedHelper()
-
-
Method Details
-
putThread
Description copied from class:AbstractFuture.AtomicHelperNon-volatile write of the thread to theAbstractFuture.Waiter.threadfield.- Specified by:
putThreadin classAbstractFuture.AtomicHelper
-
putNext
Description copied from class:AbstractFuture.AtomicHelperNon-volatile write of the waiter to theAbstractFuture.Waiter.nextfield.- Specified by:
putNextin classAbstractFuture.AtomicHelper
-
casWaiters
boolean casWaiters(AbstractFuture<?> future, @CheckForNull AbstractFuture.Waiter expect, @CheckForNull AbstractFuture.Waiter update) Description copied from class:AbstractFuture.AtomicHelperPerforms a CAS operation on theAbstractFuture.waitersfield.- Specified by:
casWaitersin classAbstractFuture.AtomicHelper
-
casListeners
boolean casListeners(AbstractFuture<?> future, @CheckForNull AbstractFuture.Listener expect, AbstractFuture.Listener update) Description copied from class:AbstractFuture.AtomicHelperPerforms a CAS operation on theAbstractFuture.listenersfield.- Specified by:
casListenersin classAbstractFuture.AtomicHelper
-
gasListeners
Performs a GAS operation on theAbstractFuture.listenersfield.- Specified by:
gasListenersin classAbstractFuture.AtomicHelper
-
gasWaiters
Performs a GAS operation on theAbstractFuture.waitersfield.- Specified by:
gasWaitersin classAbstractFuture.AtomicHelper
-
casValue
Description copied from class:AbstractFuture.AtomicHelperPerforms a CAS operation on theAbstractFuture.valuefield.- Specified by:
casValuein classAbstractFuture.AtomicHelper
-