Lines Matching defs:pred
640 Node pred = tryAppend(s, haveData);
641 if (pred == null)
644 return awaitMatch(s, pred, e, (how == TIMED), nanos);
689 * @param pred the predecessor of s, or s itself if it has no
697 private E awaitMatch(Node s, Node pred, E e, boolean timed, long nanos) {
712 unsplice(pred, s);
717 if ((spins = spinsFor(pred, s.isData)) > 0)
744 private static int spinsFor(Node pred, boolean haveData) {
745 if (MP && pred != null) {
746 if (pred.isData != haveData) // phase change
748 if (pred.isMatched()) // probably at front
750 if (pred.waiter == null) // pred apparently spinning
920 * @param pred a node that was at one time known to be the
924 final void unsplice(Node pred, Node s) {
927 * See above for rationale. Briefly: if pred still points to
929 * trailing node or pred might be unlinked, and neither pred
933 if (pred != null && pred != s && pred.next == s) {
936 (n != s && pred.casNext(s, n) && pred.isMatched())) {
939 if (h == pred || h == s || h == null)
949 if (pred.next != pred && s.next != s) { // recheck if offlist
990 for (Node pred = null, p = head; p != null; ) {
995 unsplice(pred, p);
1001 pred = p;
1002 if ((p = p.next) == pred) { // stale
1003 pred = null;