Class AbstractFuture.UnsafeAtomicHelper
java.lang.Object
com.google.common.util.concurrent.AbstractFuture.AtomicHelper
com.google.common.util.concurrent.AbstractFuture.UnsafeAtomicHelper
- Enclosing class:
AbstractFuture<V>
AbstractFuture.AtomicHelper based on Unsafe.
Static initialization of this class will fail if the Unsafe object cannot
be accessed.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final long(package private) static final sun.misc.Unsafe(package private) static final long(package private) static final long(package private) static final long(package private) static final long -
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.
-
Field Details
-
UNSAFE
static final sun.misc.Unsafe UNSAFE -
LISTENERS_OFFSET
static final long LISTENERS_OFFSET -
WAITERS_OFFSET
static final long WAITERS_OFFSET -
VALUE_OFFSET
static final long VALUE_OFFSET -
WAITER_THREAD_OFFSET
static final long WAITER_THREAD_OFFSET -
WAITER_NEXT_OFFSET
static final long WAITER_NEXT_OFFSET
-
-
Constructor Details
-
UnsafeAtomicHelper
private UnsafeAtomicHelper()
-
-
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) Performs a CAS operation on theAbstractFuture.waitersfield.- Specified by:
casWaitersin classAbstractFuture.AtomicHelper
-
casListeners
boolean casListeners(AbstractFuture<?> future, @CheckForNull AbstractFuture.Listener expect, AbstractFuture.Listener update) Performs 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
Performs a CAS operation on theAbstractFuture.valuefield.- Specified by:
casValuein classAbstractFuture.AtomicHelper
-