protected final void notifyListeners(T latestValue) {
        final Consumer<? super T>[] updateListeners;
        reentrantLock.lock();
        try {
            //noinspection unchecked
            updateListeners = this.updateListeners.toArray((Consumer<? super T>[]) EMPTY_LISTENERS);
        } finally {
            reentrantLock.unlock();
        }

        for (Consumer<? super T> listener : updateListeners) {
            listener.accept(latestValue);
        }
    }
Notify the new value changes to the listeners added via {@link #addListener(Consumer)}.
core/src/main/java/com/linecorp/armeria/common/util/AbstractListenable.java