@Override
		protected void analyzeProgram(Program program, AutoAnalysisManager manager,
				TaskMonitor monitor) {

			MyAnalysisBackgroundCommand cmd = new MyAnalysisBackgroundCommand(manager);
			tool.executeBackgroundCommand(cmd, program);

			try {
				cmd.waitUntilFinished();
			}
			catch (InterruptedException e) {
				// assume all is bad and move on
				monitor.cancel();
			}
		}
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