Class AbstractFuture.UnsafeAtomicHelper
- java.lang.Object
-
- com.google.common.util.concurrent.AbstractFuture.AtomicHelper
-
- com.google.common.util.concurrent.AbstractFuture.UnsafeAtomicHelper
-
- Enclosing class:
- AbstractFuture<V>
private static final class AbstractFuture.UnsafeAtomicHelper extends AbstractFuture.AtomicHelper
AbstractFuture.AtomicHelper
based onUnsafe
.Static initialization of this class will fail if the
Unsafe
object cannot be accessed.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static long
LISTENERS_OFFSET
(package private) static sun.misc.Unsafe
UNSAFE
(package private) static long
VALUE_OFFSET
(package private) static long
WAITER_NEXT_OFFSET
(package private) static long
WAITER_THREAD_OFFSET
(package private) static long
WAITERS_OFFSET
-
Constructor Summary
Constructors Modifier Constructor Description private
UnsafeAtomicHelper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (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, java.lang.Object expect, java.lang.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) 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, java.lang.Thread newValue)
Non volatile write of the thread to theAbstractFuture.Waiter.thread
field.
-
-
-
Field Detail
-
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
-
-
Method Detail
-
putThread
void putThread(AbstractFuture.Waiter waiter, java.lang.Thread newValue)
Description copied from class:AbstractFuture.AtomicHelper
Non volatile write of the thread to theAbstractFuture.Waiter.thread
field.- Specified by:
putThread
in classAbstractFuture.AtomicHelper
-
putNext
void putNext(AbstractFuture.Waiter waiter, @CheckForNull AbstractFuture.Waiter newValue)
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
-
casValue
boolean casValue(AbstractFuture<?> future, @CheckForNull java.lang.Object expect, java.lang.Object update)
Performs a CAS operation on theAbstractFuture.value
field.- Specified by:
casValue
in classAbstractFuture.AtomicHelper
-
-