docs: @Override
  	public void close() {
  
  		synchronized (lock) {
  
  			closed = true;
  
  			while (leaseCount > 0) {
  
  				try {
  					lock.wait();
  				} catch (InterruptedException ignore) {
  					// Even on interruption, we cannot terminate the loop until all open leases are closed.
  				}
  			}
  		}
  	}