@Override
		public boolean applyTo(Program program, TaskMonitor monitor) {
			monitor.addCancelledListener(bottomUpCancelledListener);

			// note: this call has to be here, so our listener on the monitor is in place
			manager.reAnalyzeAll(null);

			boolean result = super.applyTo(program, monitor);
			monitor.removeCancelledListener(bottomUpCancelledListener);
			finishedLatch.countDown();
			return result;
		}
Verifies that all programs to be analyzed have similar architectures (if
not, they can't be analyzed in a single batch, as their analyzer options
do not match). 
<p>
If any architectures do not match, the user will be notified via
a popup dialog.

@return the list of programs that can be analyzed, or null if the operation
was cancelled by the user
@throws CancelledException if the user cancelled the operation
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/AnalyzeAllOpenProgramsTask.java