X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FAlignCalcManager.java;h=77908b61e7575087cf315bbd0ab2348e17d5c7b5;hb=970956e40635fd5a86d46e399532abda64ccdf92;hp=08ef3a27d4ba823888c260ef3558c30f31285716;hpb=3d0101179759ef157b088ea135423cd909512d9f;p=jalview.git diff --git a/src/jalview/workers/AlignCalcManager.java b/src/jalview/workers/AlignCalcManager.java index 08ef3a2..77908b6 100644 --- a/src/jalview/workers/AlignCalcManager.java +++ b/src/jalview/workers/AlignCalcManager.java @@ -22,6 +22,7 @@ package jalview.workers; import jalview.api.AlignCalcManagerI; import jalview.api.AlignCalcWorkerI; +import jalview.bin.Jalview; import jalview.datamodel.AlignmentAnnotation; import java.util.ArrayList; @@ -34,6 +35,10 @@ import java.util.Set; public class AlignCalcManager implements AlignCalcManagerI { + public static final String STARTED = "started"; + + public static final String FINISHED = "finished"; + /* * list of registered workers */ @@ -74,7 +79,7 @@ public class AlignCalcManager implements AlignCalcManagerI .synchronizedList(new ArrayList()); updating = Collections.synchronizedMap( new Hashtable, List>()); - canUpdate = new HashSet(); + canUpdate = new HashSet<>(); } @Override @@ -82,6 +87,7 @@ public class AlignCalcManager implements AlignCalcManagerI { synchronized (updating) { + Jalview.getInstance().notifyWorker(worker, STARTED); List upd = updating.get(worker.getClass()); if (upd == null) { @@ -144,6 +150,7 @@ public class AlignCalcManager implements AlignCalcManagerI { synchronized (inProgress) { + Jalview.getInstance().notifyWorker(worker, FINISHED); // System.err.println("Worker " + worker + " marked as complete."); inProgress.remove(worker); List upd = updating.get(worker.getClass()); @@ -183,7 +190,8 @@ public class AlignCalcManager implements AlignCalcManagerI { Thread tw = new Thread(worker); tw.setName(worker.getClass().toString()); - tw.start(); + Jalview.execThread(tw); // JAL-3563 + // tw.start(); } } @@ -285,7 +293,7 @@ public class AlignCalcManager implements AlignCalcManagerI public List getRegisteredWorkersOfClass( Class workerClass) { - List workingClass = new ArrayList(); + List workingClass = new ArrayList<>(); synchronized (canUpdate) { for (AlignCalcWorkerI worker : canUpdate) @@ -312,8 +320,8 @@ public class AlignCalcManager implements AlignCalcManagerI public void removeRegisteredWorkersOfClass( Class typeToRemove) { - List removable = new ArrayList(); - Set toremovannot = new HashSet(); + List removable = new ArrayList<>(); + Set toremovannot = new HashSet<>(); synchronized (restartable) { for (AlignCalcWorkerI worker : restartable) @@ -363,7 +371,7 @@ public class AlignCalcManager implements AlignCalcManagerI * first just find those to remove (to avoid * ConcurrentModificationException) */ - List toRemove = new ArrayList(); + List toRemove = new ArrayList<>(); for (AlignCalcWorkerI worker : restartable) { if (worker.involves(ann))