interconnect/model/src/main/java/de/taimos/dvalin/interconnect/model/FutureImpl.java
/**
	 * IMPORTANT: In the event that the Cancel listener is added after cancel() was called the event is immediately fired.<br>
	 * IMPORTANT2: Keep in mind, that the Cancel listener may not be called from your own thread, so you must care about thread-safety!
	 *
	 * @param listener Cancel listener
	 */
In the event that the Cancel listener is added after cancel() was called the event is immediately fired.
IMPORTANT2: Keep in mind, that the Cancel listener may not be called from your own thread, so you must care about thread-safety!

@param listener Cancel listener
In the event that the Cancel listener is added after cancel () was called the event is immediately fired . IMPORTANT2 : Keep in mind that the Cancel listener may not be called from your own thread so you must care about thread - safety! @param listener Cancel listener
public void addCancelListener(final CancelListener<T> listener) {
		final Object v = this.value.get();
		if (v == null) {
			this.listeners.add(listener);
		} else if (FutureImpl.CANCELLED_FLAG.equals(v)) {
			listener.wasCancelled(this.getId());
		}
	}
public void addCancelListener ( final CancelListener < T > listener ) { final Object v = this . value . get ( ) ; if ( v == null ) { this . listeners . add ( listener ) ; } else if ( FutureImpl . CANCELLED_FLAG . equals ( v ) ) { listener . wasCancelled ( this . getId ( ) ) ; } }
IMPORTANT: In the event that the Cancel listener is added after cancel() was called the event is immediately fired.<br>
 IMPORTANT2: Keep in mind, that the Cancel listener may not be called from your own thread, so you must care about thread-safety!
IMPORTANT : In the event that the Cancel listener is added after cancel () was called the event is immediately fired . <br > IMPORTANT2 : Keep in mind that the Cancel listener may not be called from your own thread so you must care about thread - safety!