Class AbstractFuture.SynchronizedHelper
- java.lang.Object
-
- com.google.common.util.concurrent.AbstractFuture.AtomicHelper
-
- com.google.common.util.concurrent.AbstractFuture.SynchronizedHelper
-
- Enclosing class:
- AbstractFuture<V>
private static final class AbstractFuture.SynchronizedHelper extends AbstractFuture.AtomicHelper
AbstractFuture.AtomicHelper
based onsynchronized
and volatile writes.This is an implementation of last resort for when certain basic VM features are broken (like AtomicReferenceFieldUpdater).
-
-
Constructor Summary
Constructors Modifier Constructor Description private
SynchronizedHelper()
-
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.
-
-
-
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)
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, @CheckForNull 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, @CheckForNull 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
-
-