@Override
  public <T> T doInReadActionIfProjectOpen(Computable<T> computation) {
    synchronized (myLock) {
      if (myIsProjectClosing) return null;
    }
    return ApplicationManager.getApplication().runReadAction(computation);
  }
@Override
  public <T> T doInReadActionIfProjectOpen(Computable<T> computation)