public class LocalDeque extends LocalQueue
LocalQueue, but adds
 the ability for entries to be added to the head of the deque and popped
 from the rear.headqueue, tail, tailBufferEndBUFFER_MASK, BUFFER_SIZE, HEAD_INITIAL_VALUE, LOG_PAGES_PER_BUFFER, META_DATA_SIZE, NEXT_FIELD_OFFSET, PAGES_PER_BUFFER, TAIL_INITIAL_VALUE, USABLE_BUFFER_BYTES| Constructor and Description | 
|---|
| LocalDeque(SharedDeque queue)Constructor | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | checkHeadInsert(int arity)Check whether there is space in the buffer for a pending insert. | 
| private void | closeAndInsertHead(int arity)Close the head buffer and enqueue it at the front of the
 shared buffer deque. | 
| void | flushLocal()Flush the buffer and add it to the shared queue (this will
 make any entries in the buffer visible to any consumer associated
 with the shared queue). | 
| private void | headOverflow(int arity)Buffer space has been exhausted, allocate a new buffer and enqueue
 the existing buffer (if any). | 
| private boolean | tailStarved(int arity)The tail is empty (or  null), and the shared deque has no buffers
 available. | 
| protected void | uncheckedHeadInsert(Address value)Insert a value at the front of the deque (and buffer). | 
checkDequeue, headStarved, resetLocal, uncheckedDequeuebufferSentinel, checkTailInsert, isFlushed, normalizeTail, reset, uncheckedTailInsertbufferEnd, bufferFirst, bufferLast, bufferLast, bufferLastOffset, bufferOffset, bufferStartLocalDeque(SharedDeque queue)
queue - The shared deque to which this local deque will append
 its buffers (when full or flushed).public final void flushLocal()
LocalSSBflushLocal in class LocalSSBprotected final void checkHeadInsert(int arity)
arity - The arity of the values stored in this deque: the
 buffer must contain enough space for this many words.protected final void uncheckedHeadInsert(Address value)
checkHeadInsert() to ensure the buffer can accommodate
 the insertion.value - the value to be inserted.private void headOverflow(int arity)
arity - The arity of this buffer (used for sanity test only).private void closeAndInsertHead(int arity)
arity - The arity of this buffer.private boolean tailStarved(int arity)
null), and the shared deque has no buffers
 available.  If the head has sufficient entries, consume the head.
 Otherwise try wait on the shared deque until either all other
 clients of the reach exhaustion or a buffer becomes
 available.arity - The arity of this buffertrue if the consumer has eaten all of the entries