From 4a37d3518e5442257c71b2e24b3bcaabfc955683 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 29 Sep 2026 19:42:47 -0400 Subject: [PATCH] lower lock --- .../org/jlab/clas/reco/ReconstructionEngine.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java index fa53b15a1c..2c3280e576 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java @@ -78,6 +78,8 @@ public abstract class ReconstructionEngine implements Engine { abstract public boolean init(); abstract public void detectorChanged(int runNumber); + final Object detectorChangedLock = new Object(); + public ReconstructionEngine(String name, String author, String version){ engineName = name; engineAuthor = author; @@ -345,16 +347,18 @@ public void dropBanks(DataEvent event) { } } } - - public synchronized boolean checkRunNumber(DataEvent event) { + + public boolean checkRunNumber(DataEvent event) { int r = runNumberOverride; if (r <= 0 && event.hasBank("RUN::config")) { r = event.getBank("RUN::config").getInt("run",0); } if (r > 0) { - if (this.runNumbers.isEmpty() || r != this.runNumbers.get(this.runNumbers.size()-1)) { - this.runNumbers.add(r); - this.detectorChanged(r); + synchronized (detectorChangedLock) { + if (this.runNumbers.isEmpty() || r != this.runNumbers.get(this.runNumbers.size()-1)) { + this.runNumbers.add(r); + this.detectorChanged(r); + } } } return !this.ignoreInvalidRunNumbers || r>0;