docs: @Override
      public synchronized void stop(final StopContext context) {
          final Runnable task = new Runnable() {
              @Override
              public void run() {
                  try {
                      if (isMasterDomainController && (discoveryOptions != null)) {
                          for (DiscoveryOption discoveryOption : discoveryOptions) {
                              discoveryOption.cleanUp();
                          }
                      }
                  } finally {
                      context.complete();
                  }
              }
          };
          try {
              executorService.getValue().execute(task);
          } catch (RejectedExecutionException e) {
              task.run();
          } finally {
              context.asynchronous();
          }
      }