]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/State.java
Multiple reader thread support for db client
[simantics/platform.git] / bundles / org.simantics.db.procore / src / fi / vtt / simantics / procore / internal / State.java
index 70e2cb10dd603122da7737bab85a2ea88bdc631a..efd82b6ca8f2822ab59871793c515d8a5a4f8e80 100644 (file)
@@ -17,6 +17,7 @@ import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
 import org.simantics.db.ChangeSet;
+import org.simantics.db.Disposable;
 import org.simantics.db.Operation;
 import org.simantics.db.VirtualGraph;
 import org.simantics.db.common.utils.Logger;
@@ -296,6 +297,9 @@ class State {
                     }
                     // This will send and accept the reverse change set.
                     transactionToken.cancelEnd(session.writeSupport, null, session.clusterStream);
+                } else {
+                    queryProvider.performDirtyUpdates(graph);
+                    queryProvider.performScheduledUpdates(graph);
                 }
             }
             session.writeSupport.clearMetadata();
@@ -383,6 +387,7 @@ class State {
             this.close(); // Everything is lost anyway.
             throw new IllegalStateException(e);
         } finally {
+            Disposable.safeDispose(cs);
             lock.unlock();
         }
     }