import java.util.Hashtable;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import jalview.api.AlignCalcManagerI;
import jalview.api.AlignCalcWorkerI;
}
}
}
+
+ @Override
+ public void removeRegisteredWorkersOfClass(Class typeToRemove)
+ {
+ List<AlignCalcWorkerI> workers = getRegisteredWorkersOfClass(typeToRemove);
+ List<AlignCalcWorkerI> removable = new ArrayList<AlignCalcWorkerI>();
+ Set<AlignCalcWorkerI> toremovannot=new HashSet<AlignCalcWorkerI>();
+ synchronized (restartable)
+ {
+ for (AlignCalcWorkerI worker:restartable) {
+ if (typeToRemove.equals(worker.getClass())) {
+ removable.add(worker);
+ toremovannot.add(worker);
+ }
+ }
+ restartable.removeAll(removable);
+ }
+ synchronized (canUpdate)
+ {
+ for (AlignCalcWorkerI worker:canUpdate) {
+ if (typeToRemove.equals(worker.getClass())) {
+ removable.add(worker);
+ toremovannot.add(worker);
+ }
+ }
+ canUpdate.removeAll(removable);
+ }
+ // TODO: finish testing this extension
+
+/* synchronized (inProgress)
+ {
+ // need to kill or mark as dead any running threads...
+ (inProgress.get(typeToRemove));
+ }
+
+ if (workers == null)
+ {
+ return;
+ }
+ for (AlignCalcWorkerI worker : workers)
+ {
+
+ if (isPending(worker))
+ {
+ worker.abortAndDestroy();
+ startWorker(worker);
+ }
+ else
+ {
+ System.err.println("Pending exists for " + workerClass);
+ }
+ }*/
+ }
}