]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.acorn/src/org/simantics/acorn/MainProgram.java
Undo did not wait for pending cluster updates to finish.
[simantics/platform.git] / bundles / org.simantics.acorn / src / org / simantics / acorn / MainProgram.java
index 78ff9e8995c4162fc347edc9b51bd6f7c69ec4ff..450ad0618fe84445d68a39427a9095f464d8c81a 100644 (file)
@@ -250,7 +250,27 @@ public class MainProgram implements Runnable, Closeable {
                        deathBarrier.release();
                }
        }
+       
+       static interface MainProgramRunnable {
+               
+               public void run() throws Exception;
+               public void done();
+               
+       }
 
+       public Exception runIdle(MainProgramRunnable runnable) {
+               try {
+                       mutex.acquire();
+                       runnable.run();
+                       return null;
+               } catch (Exception e) {
+                       return e;
+               } finally {
+                       runnable.done();
+                       mutex.release();
+               }
+       }
+       
        /*
         * Mutex for streamLRU is assumed here
         *