void () { if (myCurrentTask != null) { if (!myCurrentTask.isDone()) { return; } myCurrentTask = null; popUntilCurrentTaskUnfinishedOrNull(); } else { if (myUnfinishedTasks.size() > 0) { myCurrentTask = myUnfinishedTasks.get(0); myUnfinishedTasks.remove(0); popUntilCurrentTaskUnfinishedOrNull(); } } }