@Override
  public void runWhenInitialized(@NotNull Runnable runnable) {
    if (isDisposed.get()) return;
    synchronized (isInitializationFinished) {
      if (isInitializationFinished.get()) {
        invokeLater(runnable);
      }
      else {
        myPostInitializationActivities.add(runnable);
      }
    }
  }
@Override
  public void runWhenInitialized(@NotNull Runnable runnable)