@Override
	public T get(TaskMonitor monitor) {
		T value = getCachedValue();
		if (value != null) {
			return value;
		}

		addMonitor(monitor);
		SwingWorkerImpl swingWorker = getWorker();
		if (SwingUtilities.isEventDispatchThread()) {
			blockSwingWithProgressDialog(swingWorker);
		}

		value = waitForValue(swingWorker);
		worker = null;
		setCachedValue(value);
		return value;
	}
Returns the object that this class is managing/caching.  It will return the object if it is
already created or it will block until the object can be created.  If called from the Swing
thread, it will also launch a modal progress dialog while waiting for the object to be
created.

@param monitor the monitor (may be null)
@return the object that this class is managing/caching
@see #getCachedValue()
Ghidra/Framework/Docking/src/main/java/ghidra/util/task/CachingSwingWorker.java