void (@Nullable Runnable done) { if (done == null) return; if (!canInitiateNewActivity()) { if (done instanceof AbstractTreeBuilder.UserRunnable) { return; } } if (isYieldingNow()) { myYieldingDoneRunnables.add(done); } else { try { execute(done); } catch (ProcessCanceledException ignored) { } } }