public synchronized boolean put(K key, V value) {
		//Msg.debug(this, "Inserting finished work for " + key + ": " + value);
		KeyedFuture<K, V> future = futures.get(key);
		if (future != null) {
			return future.complete(value); // should cause map.put given in #get(K)
		}
		future = new KeyedFuture<>(key, value);
		futures.put(key, future);
		map.put(key, value);
		return true;
	}
Immediately provide an out-of-band value for a given key

<p>
On occasion, the value for a key may become known outside of the specified computation. This
method circumvents the function given during construction by providing the value for a key.
If there is an outstanding request for the key's value -- a rare occasion -- it is completed
immediately with the provided value. Calling this method for a key that has already completed
has no effect.

<p>
This is equivalent to the code {@code map.put(k).complete(value)}, but atomic.

@param key the key whose value to provide
@param value the provided value
@return true if the key was completed by this call, false if the key had already been
        completed
Ghidra/Framework/Generic/src/main/java/ghidra/async/AsyncLazyMap.java