Lines Matching refs:head

148      * The deque object has two node references, "head" and "tail".
149 * The head and tail are only approximations to the first and last
151 * following prev pointers from head; likewise for tail. However,
152 * it is permissible for head and tail to be referring to deleted
184 * head or tail.
203 * the nodes pointed at by head/tail never get gc-unlinked, since
204 * head/tail are needed to get "back on track" by other nodes that
219 * pointers from head), and p.next == null && p.prev == p means
254 * - the first node is always O(1) reachable from head via prev links
256 * - head != null
257 * - (tmp = head).next != tmp || tmp != head
258 * - head is never gc-unlinked (but may be unlinked)
260 * - head.item may or may not be null
261 * - head may not be reachable from the first or last node, or from tail
263 private transient volatile Node<E> head;
275 * - tail may not be reachable from the first or last node, or from head
356 for (Node<E> h = head, p = h, q;;) {
359 // Check for head updates every other hop.
360 // If p == q, we are sure to follow head instead.
361 p = (h != (h = head)) ? h : q;
447 // tail/head, before setting x's prev/next links to their
515 updateHead(); // Ensure x is not reachable from head
540 updateHead(); // Ensure o is not reachable from head
574 updateHead(); // Ensure o is not reachable from head
595 * this method will be unreachable from head after it returns.
596 * Does not guarantee to eliminate slack, only that head will
600 // Either head already points to an active node, or we keep
604 while ((h = head).item == null && (p = h.prev) != null) {
615 else if (h != head)
740 * Guarantees that head is set to the returned node.
745 for (Node<E> h = head, p = h, q;;) {
748 // Check for head updates every other hop.
749 // If p == q, we are sure to follow head instead.
750 p = (h != (h = head)) ? h : q;
805 head = tail = new Node<E>(null);
834 * Initializes head and tail, ensuring invariants hold.
848 head = h;
1331 * The elements will be returned in order from first (head) to last (tail).
1345 * last (tail) to first (head).
1621 (ConcurrentLinkedDeque.class.getDeclaredField("head"));