X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Fvariable%2FNodeCache.java;h=5ed9678e9ec41aa4d75f6375b09362a1844f83a1;hp=309efe31e21efa9f3ffb02ef9db223c924d64e83;hb=6da46379296ecec681d6b72d053f82f637ed1c3c;hpb=3fe6778c21d6437e90d08987de6dae7bca89bc6d diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/NodeCache.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/NodeCache.java index 309efe31e..5ed9678e9 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/NodeCache.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/NodeCache.java @@ -116,6 +116,24 @@ public class NodeCache { scheduleExpiration(node, System.nanoTime() + defaultExpirationTimeInNs); } + public synchronized void remove(Node node) { + if (disposed) + return; + Long expTime = exp.get(node); + if (expTime != null) { + expirationTimes.remove(expTime); + } + map.remove(node); + } + + public synchronized void clear() { + if (disposed) + return; + expirationTimes.clear(); + exp.clear(); + map.clear(); + } + public synchronized void dispose() { disposed = true; expirationTimes.clear();