docs: public boolean close() {
  		lock.lock();
  		try {
  			if (open) {
  				if (elements.isEmpty()) {
  					open = false;
  					nonEmpty.signalAll();
  					return true;
  				} else {
  					return false;
  				}
  			}
  			else {
  				// already closed
  				return true;
  			}
  		} finally {
  			lock.unlock();
  		}
  	}