X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FAlignCalcManager.java;h=77908b61e7575087cf315bbd0ab2348e17d5c7b5;hb=970956e40635fd5a86d46e399532abda64ccdf92;hp=b829a730dbd2033197c09ece43ea2a177ed1dfea;hpb=db93a1adcbe0a4eaaf06e0a70ade0d6c5c1961c3;p=jalview.git diff --git a/src/jalview/workers/AlignCalcManager.java b/src/jalview/workers/AlignCalcManager.java index b829a73..77908b6 100644 --- a/src/jalview/workers/AlignCalcManager.java +++ b/src/jalview/workers/AlignCalcManager.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2) - * Copyright (C) 2015 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -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 */ @@ -68,13 +73,13 @@ public class AlignCalcManager implements AlignCalcManagerI { restartable = Collections .synchronizedList(new ArrayList()); - blackList = Collections - .synchronizedList(new ArrayList>()); + blackList = Collections.synchronizedList( + new ArrayList>()); inProgress = Collections .synchronizedList(new ArrayList()); - updating = Collections - .synchronizedMap(new Hashtable, List>()); - canUpdate = new HashSet(); + updating = Collections.synchronizedMap( + new Hashtable, List>()); + canUpdate = new HashSet<>(); } @Override @@ -82,13 +87,12 @@ public class AlignCalcManager implements AlignCalcManagerI { synchronized (updating) { + Jalview.getInstance().notifyWorker(worker, STARTED); List upd = updating.get(worker.getClass()); if (upd == null) { - updating.put( - worker.getClass(), - upd = Collections - .synchronizedList(new ArrayList())); + updating.put(worker.getClass(), upd = Collections + .synchronizedList(new ArrayList())); } synchronized (upd) { @@ -146,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()); @@ -185,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(); } } @@ -235,7 +241,8 @@ public class AlignCalcManager implements AlignCalcManagerI } @Override - public boolean workingInvolvedWith(AlignmentAnnotation alignmentAnnotation) + public boolean workingInvolvedWith( + AlignmentAnnotation alignmentAnnotation) { synchronized (inProgress) { @@ -286,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) @@ -313,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) @@ -364,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))