]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.simulator.toolkit/src/org/simantics/simulator/toolkit/DynamicExperimentThread.java
Wake DynamicExperimentThread task runner up when state changes
[simantics/platform.git] / bundles / org.simantics.simulator.toolkit / src / org / simantics / simulator / toolkit / DynamicExperimentThread.java
index 9ee57f51055aec994a49d33f08726fec5a21c9ca..bff9fe751b666455b8c9655ad3b59e93fe807c98 100644 (file)
@@ -190,7 +190,7 @@ abstract public class DynamicExperimentThread extends Thread {
        };
 
        public int runTasks() {
-               ArrayList<Runnable> todo = new ArrayList<>();
+               ArrayList<Runnable> 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) {