void (@NotNull Type type, @NotNull @Nls String displayName, @NotNull Runnable runnable) { Op op = new Op(type, displayName); myHeavyProcesses.add(op); myEventDispatcher.getMulticaster().processStarted(op); try { runnable.run(); } finally { myHeavyProcesses.remove(op); myEventDispatcher.getMulticaster().processFinished(op); } }