X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.simulator.toolkit%2Fsrc%2Forg%2Fsimantics%2Fsimulator%2Ftoolkit%2FDynamicExperimentThread.java;fp=bundles%2Forg.simantics.simulator.toolkit%2Fsrc%2Forg%2Fsimantics%2Fsimulator%2Ftoolkit%2FDynamicExperimentThread.java;h=bff9fe751b666455b8c9655ad3b59e93fe807c98;hp=9ee57f51055aec994a49d33f08726fec5a21c9ca;hb=8ffa1acfbc135bf309d0ec5b935b7d9dd6427bb8;hpb=15f274a205dabc11df9bf880291320fa5274e535 diff --git a/bundles/org.simantics.simulator.toolkit/src/org/simantics/simulator/toolkit/DynamicExperimentThread.java b/bundles/org.simantics.simulator.toolkit/src/org/simantics/simulator/toolkit/DynamicExperimentThread.java index 9ee57f510..bff9fe751 100644 --- a/bundles/org.simantics.simulator.toolkit/src/org/simantics/simulator/toolkit/DynamicExperimentThread.java +++ b/bundles/org.simantics.simulator.toolkit/src/org/simantics/simulator/toolkit/DynamicExperimentThread.java @@ -190,7 +190,7 @@ abstract public class DynamicExperimentThread extends Thread { }; public int runTasks() { - ArrayList todo = new ArrayList<>(); + ArrayList todo = new ArrayList<>(tasks.size()); synchronized(tasks) { todo.addAll(tasks); tasks.clear(); @@ -273,6 +273,9 @@ abstract public class DynamicExperimentThread extends Thread { public void changeState(ExperimentState state) { this.state = state; fireStateChanged(state); + synchronized (tasks) { + tasks.notifyAll(); + } } public void addListener(DynamicExperimentThreadListener listener) {