X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fquery%2FQueryProcessor.java;h=4917bbe257d7cf3970af4c812908d22ef219b388;hb=86468a45a765f1b9dcf07efcf3ba6f058dccbac2;hp=6345b7375fece679ba7f20103713bf0f1eb37b79;hpb=1f4133242efdb193390d76b0952ade00a3a88309;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/QueryProcessor.java b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/QueryProcessor.java index 6345b7375..4917bbe25 100644 --- a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/QueryProcessor.java +++ b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/QueryProcessor.java @@ -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; } @@ -4054,6 +4066,10 @@ final public class QueryProcessor extends AbstractDisposable implements ReadGrap return L0; } + public Layer0 getL0() { + return L0; + } + public static ThreadLocal thread = new ThreadLocal() { protected Integer initialValue() { return -1;