Package kilim.concurrent
Class MPSCQueue<E>
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from class kilim.concurrent.MPSCQueueL3Pad
ARRAY_BASE, ELEMENT_SHIFT, HEAD_OFFSET, p30, p31, p32, p33, p34, p35, p36, p37, p40, p41, p42, p43, p44, p45, p46, TAIL_OFFSETFields inherited from class kilim.concurrent.MPSCQueueHeadField
headFields inherited from class kilim.concurrent.MPSCQueueTailField
tailFields inherited from class kilim.concurrent.MPSCQueueColdFields
buffer, BUFFER_PAD, capacity, mask, SPARSE_SHIFT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanprivate booleancasTail(long expect, long newValue) element()private longelementOffsetInBuffer(long index) voidprivate EgetElement(long index) private longgetHead()private longgetTail()booleanhasSpace()booleanisEmpty()private voidlazySetHead(long l) booleanpeek()poll()remove()intsize()Methods inherited from class kilim.concurrent.MPSCQueueColdFields
findNextPositivePowerOfTwo, isPowerOf2
-
Field Details
-
CAS_BACKOFF
-
-
Constructor Details
-
MPSCQueue
public MPSCQueue(int capacity)
-
-
Method Details
-
getHead
private long getHead() -
lazySetHead
private void lazySetHead(long l) -
getTail
private long getTail() -
casTail
private boolean casTail(long expect, long newValue) -
add
-
elementOffsetInBuffer
private long elementOffsetInBuffer(long index) -
offer
-
hasSpace
public boolean hasSpace() -
poll
-
fill
-
remove
-
isEmpty
public boolean isEmpty() -
element
-
peek
-
getElement
-
size
public int size()
-