AGGREGATOR getAndReset(Updater<AGGREGATOR, SAMPLE> updater) {
        AGGREGATOR previous;
        synchronized (lock) {
            previous = current;
            current = updater.createGenerationInstance(previous);
            setRegistered(false);
        }
        return previous;
    }
The current generation of data produced from a single thread, where
generation is the period between two subsequent calls to
ThreadLocalDirectory.fetch().
vespajlib/src/main/java/com/yahoo/concurrent/LocalInstance.java