@Override public int getQueuedTaskCount() { return scheduler.getQueuedTaskCount(); }
@Override public int getQueuedTaskCount() { return parentScheduler.getQueuedTaskCount(); }
@Override public int getQueuedTaskCount() { return parentScheduler.getQueuedTaskCount(); }
@Override public int getQueuedTaskCount() { return scheduler.getQueuedTaskCount(); }
@Override public int getQueuedTaskCount() { return scheduler.getQueuedTaskCount() + waitingTasks.size(); }
@Override public int getQueuedTaskCount() { return scheduler.getQueuedTaskCount() + waitingTasks.size(); }
/** * Returns how many tasks are either waiting to be executed, or are scheduled to be executed at * a future point. Because this does not lock state can be modified during the calculation of * this result. Ultimately resulting in an inaccurate number. * <p> * See also: {@link SchedulerService#getQueuedTaskCount()} * * @return quantity of tasks waiting execution or scheduled to be executed later */ public int getQueuedTaskCount() { int result = 0; for (LimiterContainer limiter : currentLimiters.values()) { result += limiter.limiter.waitingTasks.size(); } return result + scheduler.getQueuedTaskCount(); }
/** * Returns how many tasks are either waiting to be executed, or are scheduled to be executed at * a future point. Because this does not lock state can be modified during the calculation of * this result. Ultimately resulting in an inaccurate number. * <p> * See also: {@link SchedulerService#getQueuedTaskCount()} * * @return quantity of tasks waiting execution or scheduled to be executed later */ public int getQueuedTaskCount() { int result = 0; for (LimiterContainer limiter : currentLimiters.values()) { result += limiter.limiter.waitingTasks.size(); } return result + scheduler.getQueuedTaskCount(); }
@Override public int getQueuedTaskCount() { return scheduler(defaultPriority).getQueuedTaskCount(); }
@Override public int getQueuedTaskCount() { return scheduler(defaultPriority).getQueuedTaskCount(); }
@Override public int getQueuedTaskCount(TaskPriority priority) { return scheduler(priority).getQueuedTaskCount(); }
@Override public int getQueuedTaskCount(TaskPriority priority) { return scheduler(priority).getQueuedTaskCount(); }
@Test public void getQueuedTaskCountTest() { BlockingTestRunnable btr = new BlockingTestRunnable(); SchedulerServiceFactory factory = getSchedulerServiceFactory(); final SchedulerService scheduler = factory.makeSchedulerService(1, false); try { // verify nothing at the start assertEquals(0, scheduler.getQueuedTaskCount()); scheduler.execute(btr); btr.blockTillStarted(); assertEquals(0, scheduler.getQueuedTaskCount()); scheduler.execute(DoNothingRunnable.instance()); assertEquals(1, scheduler.getQueuedTaskCount()); } finally { btr.unblock(); factory.shutdown(); } }
private static void verifyGuaranteedThreadProtection(List<SchedulerService> executors, int expectedLimit) { List<BlockingTestRunnable> blockingRunnables = new ArrayList<>(expectedLimit); try { for (SchedulerService executor : executors) { for (int i = 0; i < expectedLimit; i++) { BlockingTestRunnable btr = new BlockingTestRunnable(); blockingRunnables.add(btr); executor.execute(btr); } for (BlockingTestRunnable btr : blockingRunnables) { btr.blockTillStarted(); } // verify additional tasks would queue int startingQueueCount = executor.getQueuedTaskCount(); executor.execute(DoNothingRunnable.instance()); TestUtils.sleep(DELAY_TIME); assertEquals(startingQueueCount + 1, executor.getQueuedTaskCount()); // verify we can still execute on pool with existing threads TestRunnable tr = new TestRunnable(); CentralThreadlyPool.lowPriorityPool().execute(tr); tr.blockTillStarted(); } } finally { for (BlockingTestRunnable btr : blockingRunnables) { btr.unblock(); } } }