public void addChangeListener(TriConsumer<? super T, ? super T, ? super C> listener) {
		List<TriConsumer<? super T, ? super T, ? super C>> copy = new ArrayList<>(listeners);
		copy.add(listener);
		synchronized (this) {
			listeners = copy;
		}
	}
Add a listener for any change to this reference's value

<p>
Updates that get "filtered out" do not cause a change listener to fire.

@param listener the listener, which is passed the new value (post-filter) and cause
Ghidra/Framework/Generic/src/main/java/ghidra/async/AsyncReference.java