entry.prepareRecompute(querySupport);
ReadGraphImpl parentGraph = graph.forRecompute(entry);
-
+ parentGraph.asyncBarrier.inc();
query.recompute(parentGraph);
+ parentGraph.asyncBarrier.dec();
if(entry.isExcepted()) return ListenerEntry.NO_VALUE;
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();
public void invalidateResource(final int resource) {
if(lastInvalidate == resource) return;
- scheduledValueUpdates.add(resource);
+ //scheduledValueUpdates.add(resource);
+ scheduledInvalidates.add(resource);
lastInvalidate = resource;
cache.dirty = true;
}
return L0;
}
+ public Layer0 getL0() {
+ return L0;
+ }
+
public static ThreadLocal<Integer> thread = new ThreadLocal<Integer>() {
protected Integer initialValue() {
return -1;