From fdd1a362d6375ce5733b4dda00bcaca9e88c7287 Mon Sep 17 00:00:00 2001 From: yueh Date: Thu, 9 Oct 2014 16:37:25 +0200 Subject: [PATCH] Changed TreeMap to a threadsafe implementation --- src/main/java/appeng/me/storage/MEMonitorIInventory.java | 7 ++++--- .../java/appeng/me/storage/NetworkInventoryHandler.java | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/appeng/me/storage/MEMonitorIInventory.java b/src/main/java/appeng/me/storage/MEMonitorIInventory.java index 89b1834fd..8ea5e771a 100644 --- a/src/main/java/appeng/me/storage/MEMonitorIInventory.java +++ b/src/main/java/appeng/me/storage/MEMonitorIInventory.java @@ -5,9 +5,10 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.Map.Entry; import java.util.NavigableMap; -import java.util.TreeMap; +import java.util.concurrent.ConcurrentSkipListMap; import net.minecraft.item.ItemStack; + import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -49,7 +50,7 @@ public class MEMonitorIInventory implements IMEMonitor final InventoryAdaptor adaptor; - final TreeMap memory; + private final NavigableMap memory; final IItemList list = AEApi.instance().storage().createItemList(); final HashMap, Object> listeners = new HashMap, Object>(); @@ -71,7 +72,7 @@ public class MEMonitorIInventory implements IMEMonitor public MEMonitorIInventory(InventoryAdaptor adaptor) { this.adaptor = adaptor; - memory = new TreeMap(); + memory = new ConcurrentSkipListMap(); } @Override diff --git a/src/main/java/appeng/me/storage/NetworkInventoryHandler.java b/src/main/java/appeng/me/storage/NetworkInventoryHandler.java index b8f87af7c..0c628511b 100644 --- a/src/main/java/appeng/me/storage/NetworkInventoryHandler.java +++ b/src/main/java/appeng/me/storage/NetworkInventoryHandler.java @@ -5,7 +5,8 @@ import java.util.Comparator; import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import java.util.TreeMap; +import java.util.NavigableMap; +import java.util.concurrent.ConcurrentSkipListMap; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -40,12 +41,12 @@ public class NetworkInventoryHandler> implements IMEInvent final SecurityCache security; // final TreeMultimap> priorityInventory; - final TreeMap>> priorityInventory; + private final NavigableMap>> priorityInventory; public NetworkInventoryHandler(StorageChannel chan, SecurityCache security) { myChannel = chan; this.security = security; - priorityInventory = new TreeMap>>( prioritySorter ); // TreeMultimap.create( prioritySorter, hashSorter ); + priorityInventory = new ConcurrentSkipListMap>>( prioritySorter ); // TreeMultimap.create( prioritySorter, hashSorter ); } public void addNewStorage(IMEInventoryHandler h)