# | Line 882 | Line 882 | public class LinkedTransferQueue<E> exte | |
---|---|---|
882 | */ | |
883 | private void sweep() { | |
884 | for (Node p = head, s, n; p != null && (s = p.next) != null; ) { | |
885 | < | if (p == s) // stale |
886 | < | p = head; |
887 | < | else if (!s.isMatched()) |
885 | > | if (!s.isMatched()) |
886 | > | // Unmatched nodes are never self-linked |
887 | p = s; | |
888 | else if ((n = s.next) == null) // trailing node is pinned | |
889 | break; | |
890 | + | else if (s == n) // stale |
891 | + | // No need to also check for p == s, since that implies s == n |
892 | + | p = head; |
893 | else | |
894 | p.casNext(s, n); | |
895 | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |