public static <T, E extends Throwable> T computeAndWait(@NotNull ThrowableComputable<T, E> action) throws E {
    return computeAndWait(action, ModalityState.defaultModalityState());
  }
public static <T, E extends Throwable> T computeAndWait(@NotNull ThrowableComputable<T, E> action)