Prevent concurrent modification of ClassInheritanceMultiMap (#3632)

This commit is contained in:
Ben Staddon 2017-02-24 01:20:25 +00:00 committed by LexManos
parent bd4fe54753
commit 64cb9cdafd
1 changed files with 12 additions and 0 deletions

View File

@ -0,0 +1,12 @@
--- ../src-base/minecraft/net/minecraft/util/ClassInheritanceMultiMap.java
+++ ../src-work/minecraft/net/minecraft/util/ClassInheritanceMultiMap.java
@@ -12,7 +12,8 @@
public class ClassInheritanceMultiMap<T> extends AbstractSet<T>
{
- private static final Set < Class<? >> field_181158_a = Sets. < Class<? >> newHashSet();
+ // Forge: Use concurrent collection to allow creating chunks from multiple threads safely
+ private static final Set < Class<? >> field_181158_a = java.util.Collections.newSetFromMap(new java.util.concurrent.ConcurrentHashMap<Class<?>, Boolean>());
private final Map < Class<?>, List<T >> field_180218_a = Maps. < Class<?>, List<T >> newHashMap();
private final Set < Class<? >> field_180216_b = Sets. < Class<? >> newIdentityHashSet();
private final Class<T> field_180217_c;