diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-06-19 02:49:23 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-06-19 02:49:23 +0800 |
| commit | 0089052116d8683422e4d3d1fa675a416d18ad30 (patch) | |
| tree | 27f270adf0207830d16776e0639dcd53d65e26b3 /runtime/src/main/java | |
| parent | 9576bb6aa54e91f3a11decd69e6aa7a613dab37f (diff) | |
| download | RoughlyEnoughItems-0089052116d8683422e4d3d1fa675a416d18ad30.tar.gz RoughlyEnoughItems-0089052116d8683422e4d3d1fa675a416d18ad30.tar.bz2 RoughlyEnoughItems-0089052116d8683422e4d3d1fa675a416d18ad30.zip | |
Synchronize DisplayRegistry displays
Diffstat (limited to 'runtime/src/main/java')
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java | 8 |
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) { |
