Class AbstractFuture.SafeAtomicHelper
- java.lang.Object
-
- com.google.common.util.concurrent.AbstractFuture.AtomicHelper
-
- com.google.common.util.concurrent.AbstractFuture.SafeAtomicHelper
-
- Enclosing class:
- AbstractFuture<V>
private static final class AbstractFuture.SafeAtomicHelper extends AbstractFuture.AtomicHelper
AbstractFuture.AtomicHelperbased onAtomicReferenceFieldUpdater.
-
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor 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)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) booleancasListeners(AbstractFuture<?> future, AbstractFuture.Listener expect, AbstractFuture.Listener update)Performs a CAS operation on theAbstractFuture.listenersfield.(package private) booleancasValue(AbstractFuture<?> future, java.lang.Object expect, java.lang.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) voidputNext(AbstractFuture.Waiter waiter, AbstractFuture.Waiter newValue)Non volatile write of the waiter to theAbstractFuture.Waiter.nextfield.(package private) voidputThread(AbstractFuture.Waiter waiter, java.lang.Thread newValue)Non volatile write of the thread to theAbstractFuture.Waiter.threadfield.
-
-
-
Field Detail
-
waiterThreadUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,java.lang.Thread> waiterThreadUpdater
-
waiterNextUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture.Waiter,AbstractFuture.Waiter> waiterNextUpdater
-
waitersUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Waiter> waitersUpdater
-
listenersUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,AbstractFuture.Listener> listenersUpdater
-
valueUpdater
final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<AbstractFuture,java.lang.Object> valueUpdater
-
-
Constructor Detail
-
SafeAtomicHelper
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)
-
-
Method Detail
-
putThread
void putThread(AbstractFuture.Waiter waiter, java.lang.Thread newValue)
Description copied from class:AbstractFuture.AtomicHelperNon volatile write of the thread to theAbstractFuture.Waiter.threadfield.- Specified by:
putThreadin classAbstractFuture.AtomicHelper
-
putNext
void putNext(AbstractFuture.Waiter waiter, AbstractFuture.Waiter newValue)
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, AbstractFuture.Waiter expect, 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, AbstractFuture.Listener expect, AbstractFuture.Listener update)
Description copied from class:AbstractFuture.AtomicHelperPerforms a CAS operation on theAbstractFuture.listenersfield.- Specified by:
casListenersin classAbstractFuture.AtomicHelper
-
casValue
boolean casValue(AbstractFuture<?> future, java.lang.Object expect, java.lang.Object update)
Description copied from class:AbstractFuture.AtomicHelperPerforms a CAS operation on theAbstractFuture.valuefield.- Specified by:
casValuein classAbstractFuture.AtomicHelper
-
-