docs: protected Tuple2<CompletableFuture<Channel>, CompletableFuture<SocketAddress>> reconnect() {
  
          CompletableFuture<Channel> future = new CompletableFuture<>();
          CompletableFuture<SocketAddress> address = new CompletableFuture<>();
  
          socketAddressSupplier.subscribe(remoteAddress -> {
  
              address.complete(remoteAddress);
  
              if (future.isCancelled()) {
                  return;
              }
  
              reconnect0(future, remoteAddress);
  
          }, ex -> {
              if (!address.isDone()) {
                  address.completeExceptionally(ex);
              }
              future.completeExceptionally(ex);
          });
  
          this.currentFuture = future;
          return Tuples.of(future, address);
      }