From ba5473454e22cabe6fa8366877777a54ce9506b5 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 19 Jun 2022 02:49:23 +0800 Subject: Synchronize DisplayRegistry displays --- .../rei/impl/client/registry/display/DisplayRegistryImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'runtime/src/main/java') 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 d0af46480..c8a35f540 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 @@ -57,7 +57,7 @@ import java.util.function.UnaryOperator; public class DisplayRegistryImpl extends RecipeManagerContextImpl implements DisplayRegistry { private final WeakHashMap displaysBase = new WeakHashMap<>(); - private final Map, DisplaysList> displays = new ConcurrentHashMap<>(); + private final Map, List> displays = new ConcurrentHashMap<>(); private final Map, List> unmodifiableDisplays; private final Map, List>> displayGenerators = new ConcurrentHashMap<>(); private final List> globalDisplayGenerators = new ArrayList<>(); @@ -131,9 +131,11 @@ public class DisplayRegistryImpl extends RecipeManagerContextImpl { private final List unmodifiableList; + private final List synchronizedList; public DisplaysList() { - this.unmodifiableList = Collections.unmodifiableList(this); + this.synchronizedList = Collections.synchronizedList(this); + this.unmodifiableList = Collections.unmodifiableList(synchronizedList); } } @@ -160,7 +162,7 @@ public class DisplayRegistryImpl extends RecipeManagerContextImpl new DisplaysList()) + displays.computeIfAbsent(display.getCategoryIdentifier(), location -> new DisplaysList().synchronizedList) .add(display); displayCount.increment(); if (origin != null) { -- cgit