git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' into patch/JAL-4281_idwidthandannotHeight_in_project
[jalview.git]
/
src
/
jalview
/
workers
/
AlignCalcManager.java
diff --git
a/src/jalview/workers/AlignCalcManager.java
b/src/jalview/workers/AlignCalcManager.java
index
d81db8c
..
508a069
100644
(file)
--- a/
src/jalview/workers/AlignCalcManager.java
+++ b/
src/jalview/workers/AlignCalcManager.java
@@
-25,6
+25,7
@@
import jalview.api.AlignCalcWorkerI;
import jalview.datamodel.AlignmentAnnotation;
import java.util.ArrayList;
import jalview.datamodel.AlignmentAnnotation;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Collections;
import java.util.HashSet;
import java.util.Hashtable;
@@
-144,7
+145,7
@@
public class AlignCalcManager implements AlignCalcManagerI
{
synchronized (inProgress)
{
{
synchronized (inProgress)
{
- // System.err.println("Worker " + worker + " marked as complete.");
+ // jalview.bin.Console.errPrintln("Worker " + worker + " marked as complete.");
inProgress.remove(worker);
List<AlignCalcWorkerI> upd = updating.get(worker.getClass());
if (upd != null)
inProgress.remove(worker);
List<AlignCalcWorkerI> upd = updating.get(worker.getClass());
if (upd != null)
@@
-191,7
+192,7
@@
public class AlignCalcManager implements AlignCalcManagerI
public boolean isWorking(AlignCalcWorkerI worker)
{
synchronized (inProgress)
public boolean isWorking(AlignCalcWorkerI worker)
{
synchronized (inProgress)
- {// System.err.println("isWorking : worker "+(worker!=null ?
+ {// jalview.bin.Console.errPrintln("isWorking : worker "+(worker!=null ?
// worker.getClass():"null")+ " "+hashCode());
return worker != null && inProgress.contains(worker);
}
// worker.getClass():"null")+ " "+hashCode());
return worker != null && inProgress.contains(worker);
}
@@
-203,14
+204,23
@@
public class AlignCalcManager implements AlignCalcManagerI
boolean working=false;
synchronized (inProgress)
{
boolean working=false;
synchronized (inProgress)
{
- // System.err.println("isWorking "+hashCode());
+ // jalview.bin.Console.errPrintln("isWorking "+hashCode());
working |= inProgress.size() > 0;
}
synchronized (updating)
{
working |= inProgress.size() > 0;
}
synchronized (updating)
{
- for (List<AlignCalcWorkerI> workers : updating.values())
+ Collection<List<AlignCalcWorkerI>> workersLists = updating.values();
+ synchronized (workersLists)
{
{
- working |= workers.size() > 0;
+ for (List<AlignCalcWorkerI> workers : workersLists)
+ {
+ if (workers!=null)
+ {
+ synchronized (workers) {
+ working |= workers.size() > 0;
+ }
+ }
+ }
}
}
return working;
}
}
return working;
@@
-295,14
+305,16
@@
public class AlignCalcManager implements AlignCalcManagerI
Class<? extends AlignCalcWorkerI> workerClass)
{
List<AlignCalcWorkerI> workingClass = new ArrayList<AlignCalcWorkerI>();
Class<? extends AlignCalcWorkerI> workerClass)
{
List<AlignCalcWorkerI> workingClass = new ArrayList<AlignCalcWorkerI>();
+ AlignCalcWorkerI[] workers;
synchronized (canUpdate)
{
synchronized (canUpdate)
{
- for (AlignCalcWorkerI worker : canUpdate)
+ workers = canUpdate.toArray(new AlignCalcWorkerI[0]);
+ }
+ for (AlignCalcWorkerI worker : workers)
+ {
+ if (workerClass.equals(worker.getClass()))
{
{
- if (workerClass.equals(worker.getClass()))
- {
- workingClass.add(worker);
- }
+ workingClass.add(worker);
}
}
return (workingClass.size() == 0) ? null : workingClass;
}
}
return (workingClass.size() == 0) ? null : workingClass;
@@
-357,7
+369,7
@@
public class AlignCalcManager implements AlignCalcManagerI
* {
*
* if (isPending(worker)) { worker.abortAndDestroy(); startWorker(worker); }
* {
*
* if (isPending(worker)) { worker.abortAndDestroy(); startWorker(worker); }
- * else { System.err.println("Pending exists for " + workerClass); } }
+ * else { jalview.bin.Console.errPrintln("Pending exists for " + workerClass); } }
*/
}
*/
}