private void stopTasks(long token) { synchronized (tasks) { Iterator<SearchTask> it = tasks.iterator(); while (it.hasNext()) { SearchTask task = it.next(); if (token == -1L || task.getToken() == token) { task.stop(); } } } }
private int getOrder(long token) { int order = 0; synchronized (tasks) { Iterator<SearchTask> it = tasks.iterator(); while (it.hasNext()) { SearchTask task = it.next(); if (task.getToken() == token) { order = order + 1; } } } return order; }
void checkIfFinished(SearchPerformer performer) { SearchTask pendingTask = null; synchronized (tasks) { Iterator<SearchTask> it = tasks.iterator(); while (it.hasNext() && pendingTask == null) { SearchTask task = it.next(); if (task.getToken() == performer.getToken() && !task.isStopped()) { pendingTask = task; } if (task.isStopped()) { it.remove(); } } } if (pendingTask == null) { onFinished(performer.getToken()); } }