public E Next() { parent.FullyLock(); try { if (current == null) { throw new NoSuchElementException(); } E x = currentElement; lastRet = current; current = NextNode(current); currentElement = (current == null) ? null : current.item; return(x); } finally { parent.FullyUnlock(); } }
public LBQIterator(LinkedBlockingQueue <E> parent) { this.parent = parent; parent.FullyLock(); try { current = parent.head.next; if (current != null) { currentElement = current.item; } } finally { parent.FullyUnlock(); } }