/** {@inheritDoc} */ @Override public int drainTo(Collection<? super T> c, int maxElements) { int max = Math.min(maxElements, size()); for (int i = 0; i < max; i++) { T el = poll(); if (el == null) return i; c.add(el); } return max; }
/** {@inheritDoc} */ @Override public int remainingCapacity() { if (!bounded()) return Integer.MAX_VALUE; int remaining = cap - size(); return remaining > 0 ? remaining : 0; }
/** {@inheritDoc} */ @Override public int size() { gate.enter(); try { return delegate.size(); } finally { gate.leave(); } }
/** {@inheritDoc} */ @Override public int remainingCapacity() { if (!bounded()) return Integer.MAX_VALUE; int remaining = cap - size(); return remaining > 0 ? remaining : 0; }
/** {@inheritDoc} */ @Override public int drainTo(Collection<? super T> c, int maxElements) { int max = Math.min(maxElements, size()); for (int i = 0; i < max; i++) { T el = poll(); if (el == null) return i; c.add(el); } return max; }
/** {@inheritDoc} */ @Override public int size() { gate.enter(); try { return delegate.size(); } finally { gate.leave(); } }