Package com.google.code.yanf4j.util
Class LinkedTransferQueue.QNode
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicReference<java.lang.Object>
-
- com.google.code.yanf4j.util.LinkedTransferQueue.QNode
-
- All Implemented Interfaces:
java.io.Serializable
- Enclosing class:
- LinkedTransferQueue<E>
private static final class LinkedTransferQueue.QNode extends java.util.concurrent.atomic.AtomicReference<java.lang.Object>
Node class for LinkedTransferQueue. Opportunistically subclasses from AtomicReference to represent item. Uses Object, not E, to allow setting item to "this" after use, to avoid garbage retention. Similarly, setting the next field to this is used as sentinel that node is off list.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
isData
(package private) LinkedTransferQueue.QNode
next
private static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<LinkedTransferQueue.QNode,LinkedTransferQueue.QNode>
nextUpdater
long
p1
long
p2
long
p3
long
p4
long
p5
long
p6
long
p7
private static long
serialVersionUID
(package private) java.lang.Thread
waiter
-
Constructor Summary
Constructors Constructor Description QNode(java.lang.Object item, boolean isData)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
alternativeCasNext(LinkedTransferQueue.QNode cmp, LinkedTransferQueue.QNode val)
(package private) boolean
casNext(LinkedTransferQueue.QNode cmp, LinkedTransferQueue.QNode val)
-
Methods inherited from class java.util.concurrent.atomic.AtomicReference
accumulateAndGet, compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, get, getAcquire, getAndAccumulate, getAndSet, getAndUpdate, getOpaque, getPlain, lazySet, set, setOpaque, setPlain, setRelease, toString, updateAndGet, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
next
transient volatile LinkedTransferQueue.QNode next
-
waiter
transient volatile java.lang.Thread waiter
-
isData
final boolean isData
-
p1
public long p1
-
p2
public long p2
-
p3
public long p3
-
p4
public long p4
-
p5
public long p5
-
p6
public long p6
-
p7
public long p7
-
nextUpdater
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<LinkedTransferQueue.QNode,LinkedTransferQueue.QNode> nextUpdater
-
-
Method Detail
-
casNext
boolean casNext(LinkedTransferQueue.QNode cmp, LinkedTransferQueue.QNode val)
-
alternativeCasNext
private boolean alternativeCasNext(LinkedTransferQueue.QNode cmp, LinkedTransferQueue.QNode val)
-
-