docs: public T acquire() {
      if (closed) {
        throw new IllegalStateException("pool closed");
      }
  
      T reference = pool.poll();
      if (reference == null) {
        reference = factory.createReference(this);
      }
      reference.acquire();
      return reference;
    }