aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0197-Fix-MC-117075-TE-Unload-Lag-Spike.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0197-Fix-MC-117075-TE-Unload-Lag-Spike.patch')
-rw-r--r--Spigot-Server-Patches/0197-Fix-MC-117075-TE-Unload-Lag-Spike.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0197-Fix-MC-117075-TE-Unload-Lag-Spike.patch b/Spigot-Server-Patches/0197-Fix-MC-117075-TE-Unload-Lag-Spike.patch
new file mode 100644
index 0000000000..71453083cd
--- /dev/null
+++ b/Spigot-Server-Patches/0197-Fix-MC-117075-TE-Unload-Lag-Spike.patch
@@ -0,0 +1,26 @@
+From 15cd669dcb33567293742d5942ca735b544822d1 Mon Sep 17 00:00:00 2001
+From: mezz <[email protected]>
+Date: Wed, 9 Aug 2017 17:51:22 -0500
+Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike
+
+
+diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
+index 5e1ab431dc..cdb430ef4f 100644
+--- a/src/main/java/net/minecraft/server/World.java
++++ b/src/main/java/net/minecraft/server/World.java
+@@ -1274,7 +1274,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
+ this.methodProfiler.exitEnter("blockEntities");
+ timings.tileEntityTick.startTiming(); // Spigot
+ if (!this.tileEntityListUnload.isEmpty()) {
+- this.tileEntityListTick.removeAll(this.tileEntityListUnload);
++ // Paper start - Use alternate implementation with faster contains
++ java.util.Set<TileEntity> toRemove = java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>());
++ toRemove.addAll(tileEntityListUnload);
++ this.tileEntityListTick.removeAll(toRemove);
++ // Paper end
+ //this.tileEntityList.removeAll(this.tileEntityListUnload); // Paper - remove unused list
+ this.tileEntityListUnload.clear();
+ }
+--
+2.21.0
+