synchronized void start(GridStartContext startCtx) throws IgniteCheckedException {
  if (startGuard.compareAndSet(false,true)) {
    try {
      starterThread=Thread.currentThread();
      start0(startCtx);
    }
 catch (    Exception e) {
      if (log != null)       stopExecutors(log);
      throw e;
    }
 finally {
      startLatch.countDown();
    }
  }
 else   U.awaitQuiet(startLatch);
}

synchronized void start ( GridStartContext startCtx ) throws IgniteCheckedException { if ( startGuard . compareAndSet ( false , true ) ) { try { starterThread = Thread . currentThread ( ) ; start0 ( startCtx ) ; } catch ( Exception e ) { if ( log != null ) stopExecutors ( log ) ; throw e ; } finally { startLatch . countDown ( ) ; } } else U . awaitQuiet ( startLatch ) ; }
starts grid with given configuration .
