in src/main/java/org/apache/commons/pool3/impl/LinkedBlockingDeque.java [515:531]
int drainTo(final Collection<? super E> collection, final int maxElements) {
Objects.requireNonNull(collection, "c");
if (collection == this) {
throw new IllegalArgumentException();
}
lock.lock();
try {
final int n = Math.min(maxElements, count);
for (int i = 0; i < n; i++) {
collection.add(first.item); // In this order, in case add() throws.
unlinkFirst();
}
return n;
} finally {
lock.unlock();
}
}