diff --git a/src/main/java/com/volmit/iris/scaffold/stream/utility/CachedStream2D.java b/src/main/java/com/volmit/iris/scaffold/stream/utility/CachedStream2D.java index 7de579513..0531cc5fc 100644 --- a/src/main/java/com/volmit/iris/scaffold/stream/utility/CachedStream2D.java +++ b/src/main/java/com/volmit/iris/scaffold/stream/utility/CachedStream2D.java @@ -5,20 +5,15 @@ import com.volmit.iris.scaffold.cache.Cache; import com.volmit.iris.scaffold.stream.BasicStream; import com.volmit.iris.scaffold.stream.ProceduralStream; -import java.util.concurrent.Semaphore; - -// TODO BETTER CACHE SOLUTION public class CachedStream2D extends BasicStream implements ProceduralStream { private final ProceduralStream stream; private final ConcurrentLinkedHashMap cache; - private final Semaphore locker; public CachedStream2D(ProceduralStream stream, int size) { super(); this.stream = stream; - locker = new Semaphore(30); cache = new ConcurrentLinkedHashMap.Builder() .initialCapacity(size) .maximumWeightedCapacity(size) @@ -41,15 +36,7 @@ public class CachedStream2D extends BasicStream implements ProceduralStrea @Override public T get(double x, double z) { - try { - locker.acquire(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - long ck = Cache.key((int) x, (int) z); - T f = cache.compute(ck, (k, v) -> v != null ? v : stream.get(Cache.keyX(ck), Cache.keyZ(ck))); - locker.release(); - return f; + return cache.compute(Cache.key((int) x, (int) z), (k, v) -> v != null ? v : stream.get((int)x, (int)z)); } @Override