java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingCalculator.java
... ...
@@ -63,8 +63,8 @@ public class MarkPassingCalculator {
63 63
private CandidateChooser chooser;
64 64
private static final Logger logger = Logger.getLogger(MarkPassingCalculator.class.getName());
65 65
private final MarkPassingUpdateListener listener;
66
- private final static ExecutorService executor = ThreadPoolUtil.INSTANCE
67
- .getDefaultBackgroundTaskThreadPoolExecutor();
66
+ private final static ExecutorService executor = ThreadPoolUtil.INSTANCE.getDefaultBackgroundTaskThreadPoolExecutor();
67
+ private final static ExecutorService initializationExecutor = ThreadPoolUtil.INSTANCE.createBackgroundTaskThreadPoolExecutor("MarkPassingCalculator initializations");
68 68
private final LinkedBlockingQueue<StorePositionUpdateStrategy> queue;
69 69
70 70
/**
... ...
@@ -149,7 +149,7 @@ public class MarkPassingCalculator {
149 149
} else {
150 150
listen = null;
151 151
}
152
- Thread t = new Thread(() -> {
152
+ final Runnable waitForInitialization = () -> {
153 153
final Set<Callable<Void>> tasks = new HashSet<>();
154 154
for (Competitor c : race.getRace().getCompetitors()) {
155 155
tasks.add(race.getTrackedRegatta().cpuMeterCallable(() -> {
... ...
@@ -173,11 +173,11 @@ public class MarkPassingCalculator {
173 173
}
174 174
}
175 175
}
176
- }, "MarkPassingCalculator for race " + race.getRaceIdentifier() + " initialization");
176
+ };
177 177
if (waitForInitialMarkPassingCalculation) {
178
- t.run();
178
+ waitForInitialization.run();
179 179
} else {
180
- t.start();
180
+ initializationExecutor.submit(waitForInitialization);
181 181
}
182 182
}
183 183