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) boolean
casListeners
(AbstractFuture<?> future, AbstractFuture.Listener expect, AbstractFuture.Listener update) Performs a CAS operation on theAbstractFuture.listeners
field.(package private) boolean
casValue
(AbstractFuture<?> future, Object expect, Object update) Performs a CAS operation on theAbstractFuture.value
field.(package private) boolean
casWaiters
(AbstractFuture<?> future, AbstractFuture.Waiter expect, AbstractFuture.Waiter update) Performs a CAS operation on theAbstractFuture.waiters
field.(package private) AbstractFuture.Listener
gasListeners
(AbstractFuture<?> future, AbstractFuture.Listener update) Performs a GAS operation on theAbstractFuture.listeners
field.(package private) AbstractFuture.Waiter
gasWaiters
(AbstractFuture<?> future, AbstractFuture.Waiter update) Performs a GAS operation on theAbstractFuture.waiters
field.(package private) void
putNext
(AbstractFuture.Waiter waiter, AbstractFuture.Waiter newValue) Non-volatile write of the waiter to theAbstractFuture.Waiter.next
field.(package private) void
putThread
(AbstractFuture.Waiter waiter, Thread newValue) Non-volatile write of the thread to theAbstractFuture.Waiter.thread
field.
-
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.AtomicHelper
Non-volatile write of the thread to theAbstractFuture.Waiter.thread
field.- Specified by:
putThread
in classAbstractFuture.AtomicHelper
-
putNext
Description copied from class:AbstractFuture.AtomicHelper
Non-volatile write of the waiter to theAbstractFuture.Waiter.next
field.- Specified by:
putNext
in classAbstractFuture.AtomicHelper
-
casWaiters
boolean casWaiters(AbstractFuture<?> future, @CheckForNull AbstractFuture.Waiter expect, @CheckForNull AbstractFuture.Waiter update) Performs a CAS operation on theAbstractFuture.waiters
field.- Specified by:
casWaiters
in classAbstractFuture.AtomicHelper
-
casListeners
boolean casListeners(AbstractFuture<?> future, @CheckForNull AbstractFuture.Listener expect, AbstractFuture.Listener update) Performs a CAS operation on theAbstractFuture.listeners
field.- Specified by:
casListeners
in classAbstractFuture.AtomicHelper
-
gasListeners
Performs a GAS operation on theAbstractFuture.listeners
field.- Specified by:
gasListeners
in classAbstractFuture.AtomicHelper
-
gasWaiters
Performs a GAS operation on theAbstractFuture.waiters
field.- Specified by:
gasWaiters
in classAbstractFuture.AtomicHelper
-
casValue
Performs a CAS operation on theAbstractFuture.value
field.- Specified by:
casValue
in classAbstractFuture.AtomicHelper
-