{
restartable = Collections
.synchronizedList(new ArrayList<AlignCalcWorkerI>());
- blackList = Collections
- .synchronizedList(new ArrayList<Class<? extends AlignCalcWorkerI>>());
+ blackList = Collections.synchronizedList(
+ new ArrayList<Class<? extends AlignCalcWorkerI>>());
inProgress = Collections
.synchronizedList(new ArrayList<AlignCalcWorkerI>());
- updating = Collections
- .synchronizedMap(new Hashtable<Class<? extends AlignCalcWorkerI>, List<AlignCalcWorkerI>>());
+ updating = Collections.synchronizedMap(
+ new Hashtable<Class<? extends AlignCalcWorkerI>, List<AlignCalcWorkerI>>());
canUpdate = new HashSet<AlignCalcWorkerI>();
}
List<AlignCalcWorkerI> upd = updating.get(worker.getClass());
if (upd == null)
{
- updating.put(
- worker.getClass(),
- upd = Collections
- .synchronizedList(new ArrayList<AlignCalcWorkerI>()));
+ updating.put(worker.getClass(), upd = Collections
+ .synchronizedList(new ArrayList<AlignCalcWorkerI>()));
}
synchronized (upd)
{
@Override
public boolean isWorking()
{
+ boolean working=false;
synchronized (inProgress)
{
// System.err.println("isWorking "+hashCode());
- return inProgress.size() > 0;
+ working |= inProgress.size() > 0;
}
+ synchronized (updating)
+ {
+ for (List<AlignCalcWorkerI> workers : updating.values())
+ {
+ working |= workers.size() > 0;
+ }
+ }
+ return working;
}
@Override
}
@Override
- public boolean workingInvolvedWith(AlignmentAnnotation alignmentAnnotation)
+ public boolean workingInvolvedWith(
+ AlignmentAnnotation alignmentAnnotation)
{
synchronized (inProgress)
{