Skip to content

Commit d137691

Browse files
authored
Switch to concurrency-safe map implementations for public maps. (#842)
- Fixed concurrency issue when loading mod metadata
1 parent 748bd38 commit d137691

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

src/main/java/com/terraformersmc/modmenu/ModMenu.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.terraformersmc.modmenu;
22

33
import com.google.common.collect.LinkedListMultimap;
4+
import com.google.common.collect.ListMultimap;
5+
import com.google.common.collect.Multimaps;
46
import com.google.gson.FieldNamingPolicy;
57
import com.google.gson.Gson;
68
import com.google.gson.GsonBuilder;
@@ -31,6 +33,7 @@
3133

3234
import java.text.NumberFormat;
3335
import java.util.*;
36+
import java.util.concurrent.ConcurrentHashMap;
3437

3538
public class ModMenu implements ClientModInitializer {
3639
public static final String MOD_ID = "modmenu";
@@ -45,11 +48,11 @@ public class ModMenu implements ClientModInitializer {
4548
GSON_MINIFIED = builder.create();
4649
}
4750

48-
public static final Map<String, Mod> MODS = new HashMap<>();
49-
public static final Map<String, Mod> ROOT_MODS = new HashMap<>();
50-
public static final LinkedListMultimap<Mod, Mod> PARENT_MAP = LinkedListMultimap.create();
51+
public static final Map<String, Mod> MODS = new ConcurrentHashMap<>();
52+
public static final Map<String, Mod> ROOT_MODS = new ConcurrentHashMap<>();
53+
public static final ListMultimap<Mod, Mod> PARENT_MAP = Multimaps.synchronizedListMultimap(LinkedListMultimap.create());
5154

52-
private static final Map<String, ConfigScreenFactory<?>> configScreenFactories = new HashMap<>();
55+
private static final Map<String, ConfigScreenFactory<?>> configScreenFactories = new ConcurrentHashMap<>();
5356
private static final List<ModMenuApi> apiImplementations = new ArrayList<>();
5457

5558
private static int cachedDisplayedModCount = -1;

0 commit comments

Comments
 (0)