@Override protected void initialRecurringSchedule(RecurringWrapper rw, long initialDelay) { // first cleanup if needed Iterator<WeakReference<RecurringWrapper>> it = recurringTasks.iterator(); while (it.hasNext()) { if (it.next().get() == null) { it.remove(); } } recurringTasks.add(new WeakReference<>(rw)); super.initialRecurringSchedule(rw, initialDelay); }
@Override protected void initialRecurringSchedule(RecurringWrapper rw, long initialDelay) { // first cleanup if needed Iterator<WeakReference<RecurringWrapper>> it = recurringTasks.iterator(); while (it.hasNext()) { if (it.next().get() == null) { it.remove(); } } recurringTasks.add(new WeakReference<>(rw)); super.initialRecurringSchedule(rw, initialDelay); }
@Override public void scheduleAtFixedRate(Runnable task, long initialDelay, long period) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertGreaterThanZero(period, "period"); initialRecurringSchedule(new RecurringRateWrapper(task, initialDelay, period), initialDelay); }
@Override public void scheduleWithFixedDelay(Runnable task, long initialDelay, long recurringDelay) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertNotNegative(recurringDelay, "recurringDelay"); initialRecurringSchedule(new RecurringDelayWrapper(task, recurringDelay), initialDelay); }
@Override public void scheduleAtFixedRate(Runnable task, long initialDelay, long period) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertGreaterThanZero(period, "period"); initialRecurringSchedule(new RecurringRateWrapper(task, initialDelay, period), initialDelay); }
@Override public void scheduleWithFixedDelay(Runnable task, long initialDelay, long recurringDelay) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertNotNegative(recurringDelay, "recurringDelay"); initialRecurringSchedule(new RecurringDelayWrapper(task, recurringDelay), initialDelay); }