@UnstableApi
    public ServerListenerBuilder shutdownWhenStopped(ExecutorService executorService,
                                                     long terminationTimeoutMillis) {
        requireNonNull(executorService, "executorService");
        serverStoppedCallbacks.add(
                s -> ShutdownSupport.of(executorService, terminationTimeoutMillis).shutdown());
        return this;
    }
Add a callback that gracefully shuts down the given {@link ExecutorService} when the {@link Server}
is stopped.

<p>Depending on the value of {@code terminationTimeoutMillis}, the behavior is as follows:
<ul>
  <li>If the {@code terminationTimeoutMillis} is positive, it allows a maximum duration of
      {@code terminationTimeoutMillis} for the {@link ExecutorService} to terminate.</li>
  <li>If the {@code terminationTimeoutMillis} is zero, it will wait indefinitely for the
      {@link ExecutorService} to terminate during shutdown.</li>
  <li>If the {@code terminationTimeoutMillis} is negative, throws {@link IllegalArgumentException}.</li>
</ul>
core/src/main/java/com/linecorp/armeria/server/ServerListenerBuilder.java