]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/QueryProcessor.java
Merge "Adapters to convert various literals to Strings" into release/1.43.1
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / query / QueryProcessor.java
index a46bc0e8dd4e1b024dea3b0dd8d7269b10a19192..4917bbe257d7cf3970af4c812908d22ef219b388 100644 (file)
@@ -1279,8 +1279,9 @@ final public class QueryProcessor extends AbstractDisposable implements ReadGrap
                        entry.prepareRecompute(querySupport);
                        
                        ReadGraphImpl parentGraph = graph.forRecompute(entry);
-
+                       parentGraph.asyncBarrier.inc();
                        query.recompute(parentGraph);
+                       parentGraph.asyncBarrier.dec();
 
                        if(entry.isExcepted()) return ListenerEntry.NO_VALUE;
 
@@ -1429,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();
 
@@ -1656,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;
        }
@@ -4053,6 +4066,10 @@ final public class QueryProcessor extends AbstractDisposable implements ReadGrap
                return L0;
        }
 
+       public Layer0 getL0() {
+               return L0;
+       }
+
     public static ThreadLocal<Integer> thread = new ThreadLocal<Integer>() {
         protected Integer initialValue() {
             return -1;