mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-04-05 23:36:12 +00:00
Only compute if absent/present if compute is not needed (locking opts)
This commit is contained in:
@@ -58,11 +58,11 @@ public class CachedConversionStream<T, V> extends BasicLayer implements Procedur
|
||||
|
||||
@Override
|
||||
public V get(double x, double z) {
|
||||
return cache.compute(stream.get(x, z), (k, v) -> v != null ? v : converter.apply(k));
|
||||
return cache.computeIfAbsent(stream.get(x, z), converter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public V get(double x, double y, double z) {
|
||||
return cache.compute(stream.get(x, y, z), (k, v) -> v != null ? v : converter.apply(k));
|
||||
return cache.computeIfAbsent(stream.get(x, y, z), converter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,11 +49,11 @@ public class CachedStream3D<T> extends BasicStream<T> implements ProceduralStrea
|
||||
|
||||
@Override
|
||||
public T get(double x, double z) {
|
||||
return cache.compute(new BlockPosition((int) x, -1, (int) z), (k, v) -> v != null ? v : stream.get((int) x, (int) z));
|
||||
return cache.computeIfAbsent(new BlockPosition((int) x, -1, (int) z), (k) -> stream.get((int) x, (int) z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public T get(double x, double y, double z) {
|
||||
return cache.compute(new BlockPosition((int) x, (int) y, (int) z), (k, v) -> v != null ? v : stream.get((int) x, (int) y, (int) z));
|
||||
return cache.computeIfAbsent(new BlockPosition((int) x, (int) y, (int) z), (k) -> stream.get((int) x, (int) y, (int) z));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user