public synchronized void launchDriver() {
    if (state == State.SHUTTING_DOWN) {
      throw new IllegalStateException("Manager is being shutdown");
    }

    if (driver == null) {
      driver = MediaDriver.launchEmbedded(getDriverContext());
      Aeron.Context ctx = new Aeron.Context();
      String aeronDirName = driver.aeronDirectoryName();
      ctx.aeronDirectoryName(aeronDirName);
      aeron = Aeron.connect(ctx);

      aeronCounters = new AeronCounters(aeronDirName);
      state = State.STARTED;

      aeronDirNames.add(aeronDirName);

      logger.info("Embedded media driver started");
    }
    counter++;
  }