private DataType processResolveQueue(boolean deactivateCache, DataType dataType) {

		try {
			if (resolveQueue != null) {
				DataTypeConflictHandler handler = getDependencyConflictHandler();
				while (!resolveQueue.isEmpty()) {
					ResolvePair resolvePair = resolveQueue.pollFirst();
					DataTypeDB resolvedDt = resolvePair.resolvedDt;
					try {
						if (!resolvedDt.isDeleted()) {
							resolvedDt.postPointerResolve(resolvePair.definitionDt, handler);
						}
					}
					finally {
						resolvedDt.resolving = false;
						resolvedDt.pointerPostResolveRequired = false;
					}
				}
			}
			if (deactivateCache) {
				return processConflictQueue(dataType);
			}
		}
		finally {
			resolveQueue = null;
			if (deactivateCache) {
				resolveCache = null;
			}
		}
		return dataType;
	}
Process resolve queue, which  includes:
<ul>
<li>Process any deferred pointer resolves in {@code resolveQueue}</li>
<li>If deactivating cache {@code deactivateCache==true} the conflict queue will be 
processed</li>
<li>If deactivating cache {@code deactivateCache==true} the {@code resolveCache} will be
disposed.</li>
</ul>

@param deactivateCache true if caller is {@code resolveCache} owner as determined by call 
to {@link #activateResolveCache()}) at start of resolve cycle, else false.
@param dataType final resolved data type.  If {@code deactivateCache==true} and this type
is a newly created conflict type and this method and is able to replace with an equivalent 
data type the replacement datatype will be returned, otherwise the specified {@code dataType}
instance will be returned.
@return final resolved data type
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeManagerDB.java