docs: public List<E> getBatchBlocking() throws InterruptedException {
  		lock.lock();
  		try {
  			while (open && elements.isEmpty()) {
  				nonEmpty.await();
  			}
  			if (open) {
  				ArrayList<E> result = new ArrayList<>(elements);
  				elements.clear();
  				return result;
  			} else {
  				throw new IllegalStateException("queue is closed");
  			}
  		} finally {
  			lock.unlock();
  		}
  	}