-Made item cache key removal a synchronized code block
This commit is contained in:
Luis C.M committed 2023-05-30 01:46:29 -05:00
1 parent 45a139ea68
commit ab8e966f71
1 file changed
+10 -9
+10 -9
View File
@@ -373,17 +373,18 @@ public class NpcAPI extends AbstractNpcAPI {
long time = System.currentTimeMillis();
scriptStack.lastAccessed = time;
List<ItemStack> keysToRemove = new ArrayList<>();
for (Map.Entry<ItemStack, ScriptItemStack> entry : scriptItemCache.entrySet()) {
if (time - entry.getValue().lastAccessed > 20000) {
keysToRemove.add(entry.getKey());
synchronized (scriptItemCache) {
List<ItemStack> keysToRemove = new ArrayList<>();
for (Map.Entry<ItemStack, ScriptItemStack> entry : scriptItemCache.entrySet()) {
if (time - entry.getValue().lastAccessed > 20000) {
keysToRemove.add(entry.getKey());
}
}
for (ItemStack key : keysToRemove) {
scriptItemCache.remove(key);
}
scriptItemCache.put(itemstack, scriptStack);
}
for (ItemStack key : keysToRemove) {
scriptItemCache.remove(key);
}
scriptItemCache.put(itemstack,scriptStack);
return scriptStack;
}