aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-19 02:49:23 +0800
committershedaniel <daniel@shedaniel.me>2022-06-19 02:49:23 +0800
commit0089052116d8683422e4d3d1fa675a416d18ad30 (patch)
tree27f270adf0207830d16776e0639dcd53d65e26b3 /runtime/src/main/java/me
parent9576bb6aa54e91f3a11decd69e6aa7a613dab37f (diff)
downloadRoughlyEnoughItems-0089052116d8683422e4d3d1fa675a416d18ad30.tar.gz
RoughlyEnoughItems-0089052116d8683422e4d3d1fa675a416d18ad30.tar.bz2
RoughlyEnoughItems-0089052116d8683422e4d3d1fa675a416d18ad30.zip
Synchronize DisplayRegistry displays
Diffstat (limited to 'runtime/src/main/java/me')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java
index 73bf3122c..eaa53a23d 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java
@@ -56,7 +56,7 @@ import java.util.function.UnaryOperator;
public class DisplayRegistryImpl extends RecipeManagerContextImpl<REIClientPlugin> implements DisplayRegistry {
private final WeakHashMap<Display, Object> displaysBase = new WeakHashMap<>();
- private final Map<CategoryIdentifier<?>, DisplaysList> displays = new ConcurrentHashMap<>();
+ private final Map<CategoryIdentifier<?>, List<Display>> displays = new ConcurrentHashMap<>();
private final Map<CategoryIdentifier<?>, List<Display>> unmodifiableDisplays;
private final Map<CategoryIdentifier<?>, List<DynamicDisplayGenerator<?>>> displayGenerators = new ConcurrentHashMap<>();
private final List<DynamicDisplayGenerator<?>> globalDisplayGenerators = new ArrayList<>();
@@ -130,9 +130,11 @@ public class DisplayRegistryImpl extends RecipeManagerContextImpl<REIClientPlugi
private static class DisplaysList extends ArrayList<Display> {
private final List<Display> unmodifiableList;
+ private final List<Display> synchronizedList;
public DisplaysList() {
- this.unmodifiableList = Collections.unmodifiableList(this);
+ this.synchronizedList = Collections.synchronizedList(this);
+ this.unmodifiableList = Collections.unmodifiableList(synchronizedList);
}
}
@@ -159,7 +161,7 @@ public class DisplayRegistryImpl extends RecipeManagerContextImpl<REIClientPlugi
}
}
- displays.computeIfAbsent(display.getCategoryIdentifier(), location -> new DisplaysList())
+ displays.computeIfAbsent(display.getCategoryIdentifier(), location -> new DisplaysList().synchronizedList)
.add(display);
displayCount.increment();
if (origin != null) {