-
-
- private final ScheduledExecutorService executor =
- Executors.newSingleThreadScheduledExecutor();
- private final Map<AlignCalcWorkerI, WorkerManager> registered =
- synchronizedMap(new HashMap<>());
-
- private final List<AlignCalcListener> listeners =
- new CopyOnWriteArrayList<>();
-
-
+
+ private final ScheduledExecutorService executor = Executors
+ .newSingleThreadScheduledExecutor();
+
+ private final Map<AlignCalcWorkerI, WorkerManager> registered = synchronizedMap(
+ new HashMap<>());
+
+ private final Map<AlignCalcWorkerI, WorkerManager> oneshot = synchronizedMap(
+ new WeakHashMap<>());
+
+ private final List<AlignCalcListener> listeners = new CopyOnWriteArrayList<>();
+
+ private WorkerManager createManager(AlignCalcWorkerI worker)
+ {
+ if (worker instanceof PollableAlignCalcWorkerI)
+ {
+ return new PollableWorkerManager((PollableAlignCalcWorkerI) worker);
+ }
+ else
+ {
+ return new SimpleWorkerManager(worker);
+ }
+ }
+