]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/QueryProcessor.java
Resolve "A tag with an associated listener causes issues in DelayedWrite
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / query / QueryProcessor.java
index 6d9560940be2b1c19b73616c85a2996ee2b65d25..4917bbe257d7cf3970af4c812908d22ef219b388 100644 (file)
@@ -1430,6 +1430,17 @@ final public class QueryProcessor extends AbstractDisposable implements ReadGrap
        
        public void propagateChangesInQueryCache(final ReadGraphImpl graph) {
                
+               ReadGraphImpl syncGraph = graph.forSyncExecute();
+               syncGraph.asyncBarrier.inc();
+               propagateChangesInQueryCache_(syncGraph);
+               syncGraph.asyncBarrier.dec();
+               syncGraph.asyncBarrier.waitBarrier(this, syncGraph);
+
+       }
+
+       
+       public void propagateChangesInQueryCache_(final ReadGraphImpl graph) {
+               
                // Make sure that listening has performed its work
                listening.sync();
 
@@ -1657,7 +1668,8 @@ final public class QueryProcessor extends AbstractDisposable implements ReadGrap
        
        public void invalidateResource(final int resource) {
                if(lastInvalidate == resource) return;
-               scheduledValueUpdates.add(resource);
+               //scheduledValueUpdates.add(resource);
+               scheduledInvalidates.add(resource);
                lastInvalidate = resource;
                cache.dirty = true;
        }