/** * Removes any tasks waiting to be run. Will not interrupt any tasks currently running. But * will avoid additional tasks from being run (unless they are allowed to be added during or * after this call). * <p> * If tasks are added concurrently during this invocation they may or may not be removed. * * @return List of runnables which were waiting in the task queue to be executed (and were now removed) */ public List<Runnable> clearQueue() { List<TaskWrapper> wrapperList = new ArrayList<>(highPriorityQueueSet.queueSize() + lowPriorityQueueSet.queueSize() + starvablePriorityQueueSet.queueSize()); highPriorityQueueSet.drainQueueInto(wrapperList); lowPriorityQueueSet.drainQueueInto(wrapperList); starvablePriorityQueueSet.drainQueueInto(wrapperList); return ContainerHelper.getContainedRunnables(wrapperList); }
/** * Removes any tasks waiting to be run. Will not interrupt any tasks currently running. But * will avoid additional tasks from being run (unless they are allowed to be added during or * after this call). * <p> * If tasks are added concurrently during this invocation they may or may not be removed. * * @return List of runnables which were waiting in the task queue to be executed (and were now removed) */ public List<Runnable> clearQueue() { List<TaskWrapper> wrapperList = new ArrayList<>(highPriorityQueueSet.queueSize() + lowPriorityQueueSet.queueSize() + starvablePriorityQueueSet.queueSize()); highPriorityQueueSet.drainQueueInto(wrapperList); lowPriorityQueueSet.drainQueueInto(wrapperList); starvablePriorityQueueSet.drainQueueInto(wrapperList); return ContainerHelper.getContainedRunnables(wrapperList); }
@Test public void queueSizeTest() { assertEquals(0, queueSet.queueSize()); OneTimeTaskWrapper task = new OneTimeTaskWrapper(DoNothingRunnable.instance(), null, Clock.lastKnownForwardProgressingMillis()); queueSet.executeQueue.add(task); queueSet.scheduleQueue.addFirst(task); assertEquals(2, queueSet.queueSize()); }
@Test public void clearTasksTest() { scheduler.schedule(DoNothingRunnable.instance(), 1000 * 15); scheduler.execute(DoNothingRunnable.instance()); scheduler.clearTasks(); assertEquals(0, scheduler.queueManager.highPriorityQueueSet.queueSize()); assertEquals(0, scheduler.queueManager.lowPriorityQueueSet.queueSize()); } }
@Override public int getQueuedTaskCount() { int result = 0; for (TaskPriority p : TaskPriority.values()) { result += getQueueManager().getQueueSet(p).queueSize(); } return result; }
@Override public int getQueuedTaskCount(TaskPriority priority) { if (priority == null) { return getQueuedTaskCount(); } return getQueueManager().getQueueSet(priority).queueSize(); }
@Override public int getQueuedTaskCount() { int result = 0; for (TaskPriority p : TaskPriority.values()) { result += getQueueManager().getQueueSet(p).queueSize(); } return result; }
@Override public int getQueuedTaskCount(TaskPriority priority) { if (priority == null) { return getQueuedTaskCount(); } return getQueueManager().getQueueSet(priority).queueSize(); }