diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/DBTrace.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/DBTrace.java index e7f4eeace0..8c64fe3141 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/DBTrace.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/DBTrace.java @@ -529,7 +529,8 @@ public class DBTrace extends DBCachedDomainObjectAdapter implements Trace, Trace } @Override - public DBTraceProgramView getFixedProgramView(long snap) { + // NOTE: addListener synchronizes on this and might generate callbacks immediately + public synchronized DBTraceProgramView getFixedProgramView(long snap) { // NOTE: The new viewport will need to read from the time manager during init try (LockHold hold = lockRead()) { synchronized (fixedProgramViews) { @@ -543,7 +544,8 @@ public class DBTrace extends DBCachedDomainObjectAdapter implements Trace, Trace } @Override - public DBTraceVariableSnapProgramView createProgramView(long snap) { + // NOTE: Ditto getFixedProgramView + public synchronized DBTraceVariableSnapProgramView createProgramView(long snap) { // NOTE: The new viewport will need to read from the time manager during init try (LockHold hold = lockRead()) { synchronized (programViews) {