private void release(C client) {
    synchronized (this) {
      clients.addFirst(client);
    }
    synchronized (signal) {
      signal.notify();
    }
  }
Copied from iceberg-common

@param <C> client type
@param <E> exception type that client will throw
amoro-common/src/main/java/org/apache/amoro/client/ClientPoolImpl.java