CompletableFuture launchWorker()

in harness/src/main/java/org/apache/geode/perftest/jvms/JVMLauncher.java [56:84]


  CompletableFuture<Void> launchWorker(Infrastructure infra, int rmiPort,
      JVMMapping jvmConfig)
      throws UnknownHostException {
    final String[] shellCommand = traceCommand(
        buildCommand(InetAddress.getLocalHost().getHostAddress(), rmiPort, jvmConfig), jvmConfig);

    CompletableFuture<Void> future = new CompletableFuture<>();
    Thread thread = new Thread("Worker " + jvmConfig.getNode().getAddress()) {
      public void run() {

        try {
          infra.onNode(jvmConfig.getNode(), new String[] {"rm", "-rf", jvmConfig.getOutputDir()});
          infra.onNode(jvmConfig.getNode(), new String[] {"mkdir", "-p", jvmConfig.getOutputDir()});
          int result = infra.onNode(jvmConfig.getNode(), shellCommand);
          if (result != 0) {
            logger.error("ChildJVM exited with error code " + result);
          }
        } catch (Throwable t) {
          logger.error("Launching " + String.join(" ", shellCommand) + " on " + jvmConfig.getNode()
              + "Failed.", t);
        } finally {
          future.complete(null);
        }
      }
    };
    thread.start();

    return future;
  }