forked from MagicBane/Server
Concurrency update
This commit is contained in:
@@ -29,7 +29,7 @@ public enum ForgeManager implements Runnable {
|
||||
|
||||
private static final BlockingQueue<WorkOrder> forge = new DelayQueue<>();
|
||||
public static final AtomicInteger wordOrderCounter = new AtomicInteger(0);
|
||||
public static final ConcurrentHashMap<NPC, CopyOnWriteArrayList<WorkOrder>> vendorWorkOrderLookup = new ConcurrentHashMap<>();
|
||||
public static final ConcurrentHashMap<NPC, ConcurrentHashMap.KeySetView<WorkOrder, Boolean>> vendorWorkOrderLookup = new ConcurrentHashMap<>();
|
||||
public static final ConcurrentHashMap<Item, WorkOrder> itemWorkOrderLookup = new ConcurrentHashMap<>();
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,7 +27,7 @@ import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import static engine.math.FastMath.acos;
|
||||
@@ -523,7 +523,7 @@ public enum NPCManager {
|
||||
|
||||
ArrayList<Item> itemList = new ArrayList<>();
|
||||
|
||||
List<WorkOrder> vendorWorkOrders = ForgeManager.vendorWorkOrderLookup.get(npc);
|
||||
ConcurrentHashMap.KeySetView<WorkOrder, Boolean> vendorWorkOrders = ForgeManager.vendorWorkOrderLookup.get(npc);
|
||||
|
||||
for (WorkOrder workOrder : vendorWorkOrders)
|
||||
itemList.addAll(workOrder.cooking);
|
||||
|
||||
@@ -35,7 +35,6 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
|
||||
import static engine.net.client.msg.ErrorPopupMsg.sendErrorPopup;
|
||||
@@ -873,7 +872,7 @@ public class NPC extends AbstractCharacter {
|
||||
// If NPC is a vendor then configure ForgeManager support
|
||||
|
||||
if (this.contract.isTrainer() == false)
|
||||
ForgeManager.vendorWorkOrderLookup.computeIfAbsent(this, k -> new CopyOnWriteArrayList<>());
|
||||
ForgeManager.vendorWorkOrderLookup.computeIfAbsent(this, k -> ConcurrentHashMap.newKeySet());
|
||||
|
||||
this.symbol = this.contract.getIconID();
|
||||
this.modTypeTable = this.contract.getNPCModTypeTable();
|
||||
|
||||
Reference in New Issue
Block a user