void (@NotNull ThrowableComputable<Boolean, ? extends Exception> waiter) { ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator(); boolean success = false; while (!success) { checkCancelledEvenWithPCEDisabled(indicator); try { success = waiter.compute(); } catch (ProcessCanceledException pce) { throw pce; } catch (Exception e) { //noinspection InstanceofCatchParameter if (!(e instanceof InterruptedException)) { LOG.warn(e); } throw new ProcessCanceledException(e); } } }