diff --git a/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java b/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java index 42fe6671f..0765d8bb6 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java @@ -19,6 +19,7 @@ package com.volmit.iris.core.pregenerator; import com.volmit.iris.Iris; +import com.volmit.iris.core.gui.PregeneratorJob; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; diff --git a/src/main/java/com/volmit/iris/util/data/KCache.java b/src/main/java/com/volmit/iris/util/data/KCache.java index 2246d3c51..d8276288d 100644 --- a/src/main/java/com/volmit/iris/util/data/KCache.java +++ b/src/main/java/com/volmit/iris/util/data/KCache.java @@ -27,20 +27,25 @@ import java.util.function.Function; public class KCache implements MeteredCache { private long max; - private CacheLoader loader; + private CacheLoader loader; private LoadingCache cache; public KCache(CacheLoader loader, long max) { this.max = max; this.loader = loader; - this.cache = Caffeine + this.cache = create(loader); + } + + private LoadingCache create(CacheLoader loader) { + return Caffeine .newBuilder() .maximumSize(max) .build((k) -> loader == null ? null : loader.load(k)); } - public void setLoader(CacheLoader loader) + + public void setLoader(CacheLoader loader) { this.loader = loader; } @@ -52,8 +57,9 @@ public class KCache implements MeteredCache { public void invalidate() { - cache.invalidateAll(); - cache.cleanUp(); + LoadingCache c = cache; + cache = create(loader); + c.invalidateAll(); } public V get(K k)