docs: public Future<Void> close() {
      if (closing.compareAndSet(false, true) && channel.isOpen()) {
        // go through the coalescer: this guarantees that we won't reject writes that were submitted
        // before, but had not been coalesced yet.
        writeCoalescer
            .writeAndFlush(channel, GRACEFUL_CLOSE_MESSAGE)
            .addListener(UncaughtExceptions::log);
      }
      return channel.closeFuture();
    }