Lines Matching refs:tail

25  * The <em>tail</em> of the queue is that element that has been on the
27 * are inserted at the tail of the queue, and the queue retrieval
93 * reached in O(1) time from tail, but tail is merely an
117 * Both head and tail are permitted to lag. In fact, failing to
121 * that is, we update head/tail when the current pointer appears
124 * Since head and tail are updated concurrently and independently,
125 * it is possible for tail to lag behind head (why not)?
140 * Both head and tail may or may not point to a Node with a
142 * be null. Upon creation, both head and tail refer to a dummy
143 * Node with null item. Both head and tail are only updated using
201 * - it is permitted for tail to lag behind head, that is, for tail
210 * - the last node is always reachable from tail via succ()
211 * - tail != null
213 * - tail.item may or may not be null.
214 * - it is permitted for tail to lag behind head, that is, for tail
216 * - tail.next may or may not be self-pointing to tail.
218 private transient volatile Node<E> tail;
224 head = tail = new Node<E>(null);
251 tail = t;
257 * Inserts the specified element at the tail of this queue.
288 * Inserts the specified element at the tail of this queue.
298 for (Node<E> t = tail, p = t;;) {
313 // We have fallen off list. If tail is unchanged, it
316 // reachable. Else the new tail is a better bet.
317 p = (t != (t = tail)) ? t : head;
319 // Check for tail updates after two hops.
320 p = (p != t && t != (t = tail)) ? t : q;
505 // Atomically append the chain at the tail of this collection
506 for (Node<E> t = tail, p = t;;) {
514 // Try a little harder to update tail,
516 t = tail;
525 // We have fallen off list. If tail is unchanged, it
528 // reachable. Else the new tail is a better bet.
529 p = (t != (t = tail)) ? t : head;
531 // Check for tail updates after two hops.
532 p = (p != t && t != (t = tail)) ? t : q;
623 * The elements will be returned in order from first (head) to last (tail).
763 tail = t;
796 (k.getDeclaredField("tail"));