docs: public static Future<?> execute(final CuratorFramework client, final Runnable runAfterConnection) throws Exception
      {
          //Block until connected
          final ExecutorService executor = ThreadUtils.newSingleThreadExecutor(ThreadUtils.getProcessName(runAfterConnection.getClass()));
          Runnable internalCall = new Runnable()
          {
              @Override
              public void run()
              {
                  try
                  {
                      client.blockUntilConnected();
                      runAfterConnection.run();
                  }
                  catch ( Exception e )
                  {
                      ThreadUtils.checkInterrupted(e);
                      log.error("An error occurred blocking until a connection is available", e);
                  }
                  finally
                  {
                      executor.shutdown();
                  }
              }
          };
          return executor.submit(internalCall);
      }