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