in core/src/main/java/org/apache/commons/functor/aggregator/AbstractTimedAggregator.java [185:211]
public AbstractTimedAggregator(long interval, boolean useSharedTimer) {
if (interval <= NO_TIMER) {
// not using timer
this.interval = NO_TIMER;
this.timer = null;
this.task = null;
this.timerListeners = null;
} else {
// we have been requested to use timers
this.interval = interval;
this.timerListeners = new CopyOnWriteArrayList<TimedAggregatorListener<T>>();
if (useSharedTimer) {
this.timer = MAIN_TIMER;
} else {
this.timer = new Timer(TIMER_NAME + hashCode(), true);
}
// having set up the timer, create the task
this.task = new TimerTask() {
@Override
public void run() {
timer();
}
};
this.timer.scheduleAtFixedRate(this.task, this.interval, this.interval);
}
this.dataLock = new ReentrantReadWriteLock();
}