docs: Future<Channel> acquire() {
          final Promise<Channel> acquirePromise = new DefaultPromise<>(this.executor);
  
          if (this.executor.inEventLoop()) {
              this.acquireWithinEventExecutor(acquirePromise);
          } else {
              this.executor.submit(new Runnable() {
                  @Override
                  public void run() {
                      ApnsChannelPool.this.acquireWithinEventExecutor(acquirePromise);
                  }
              }).addListener(new GenericFutureListener() {
                  @Override
                  public void operationComplete(final Future future) throws Exception {
                      if (!future.isSuccess()) {
                          acquirePromise.tryFailure(future.cause());
                      }
                  }
              });
          }
  
          return acquirePromise;
      }