Archiviert
13
0
Dieses Repository wurde am 2024-12-25 archiviert. Du kannst Dateien ansehen und es klonen, aber nicht pushen oder Issues/Pull-Requests öffnen.
Paper-Old/Spigot-Server-Patches/0171-Optimise-NetworkManager.patch
Zach Brown 974b0afca9
Remove last bit of chunk exists region file fix
CraftBukkit removed their implementation that caused this issue,
switching to Mojang's implementation which doesn't appear to share it. I
already removed the important bit in the last upstream merge, this is
just unused and unnecessary now. So we remove it.
2017-04-29 05:27:31 -05:00

126 Zeilen
4.9 KiB
Diff

From 863b08010dbfe4e4046e553ced31acb9c2d2fde1 Mon Sep 17 00:00:00 2001
From: Alfie Cleveland <alfeh@me.com>
Date: Fri, 25 Nov 2016 20:35:05 +0000
Subject: [PATCH] Optimise NetworkManager
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 184ef32a8..be14c0b25 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -62,8 +62,8 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
}
};
private final EnumProtocolDirection h;
- private final Queue<NetworkManager.QueuedPacket> i = Queues.newConcurrentLinkedQueue();
- private final ReentrantReadWriteLock j = new ReentrantReadWriteLock();
+ // private final Queue<NetworkManager.QueuedPacket> i = Queues.newConcurrentLinkedQueue(); // Paper
+ // private final ReentrantReadWriteLock j = new ReentrantReadWriteLock(); // Paper
public Channel channel;
// Spigot Start // PAIL
public SocketAddress l;
@@ -141,32 +141,36 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
if (this.isConnected()) {
this.m();
this.a(packet, (GenericFutureListener[]) null);
- } else {
- this.j.writeLock().lock();
-
- try {
- this.i.add(new NetworkManager.QueuedPacket(packet, (GenericFutureListener[]) null));
- } finally {
- this.j.writeLock().unlock();
- }
}
-
+ // Paper start - Remove but force a conflict
+// else {
+// this.j.writeLock().lock();
+//
+// try {
+// this.i.add(new NetworkManager.QueuedPacket(packet, (GenericFutureListener[]) null));
+// } finally {
+// this.j.writeLock().unlock();
+// }
+// }
+ // Paper end
}
public void sendPacket(Packet<?> packet, GenericFutureListener<? extends Future<? super Void>> genericfuturelistener, GenericFutureListener<? extends Future<? super Void>>... agenericfuturelistener) {
if (this.isConnected()) {
this.m();
this.a(packet, (GenericFutureListener[]) ArrayUtils.add(agenericfuturelistener, 0, genericfuturelistener));
- } else {
- this.j.writeLock().lock();
-
- try {
- this.i.add(new NetworkManager.QueuedPacket(packet, (GenericFutureListener[]) ArrayUtils.add(agenericfuturelistener, 0, genericfuturelistener)));
- } finally {
- this.j.writeLock().unlock();
- }
}
-
+ // Paper start - Remove but force a conflict
+// else {
+// this.j.writeLock().lock();
+//
+// try {
+// this.i.add(new NetworkManager.QueuedPacket(packet, (GenericFutureListener[]) ArrayUtils.add(agenericfuturelistener, 0, genericfuturelistener)));
+// } finally {
+// this.j.writeLock().unlock();
+// }
+// }
+ // Paper end
}
private void a(final Packet<?> packet, @Nullable final GenericFutureListener<? extends Future<? super Void>>[] agenericfuturelistener) {
@@ -211,20 +215,22 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
}
private void m() {
- if (this.channel != null && this.channel.isOpen()) {
- this.j.readLock().lock();
-
- try {
- while (!this.i.isEmpty()) {
- NetworkManager.QueuedPacket networkmanager_queuedpacket = (NetworkManager.QueuedPacket) this.i.poll();
-
- this.a(networkmanager_queuedpacket.a, networkmanager_queuedpacket.b);
- }
- } finally {
- this.j.readLock().unlock();
- }
-
- }
+ // Paper start - Remove but force a conflict
+// if (this.channel != null && this.channel.isOpen()) {
+// this.j.readLock().lock();
+//
+// try {
+// while (!this.i.isEmpty()) {
+// NetworkManager.QueuedPacket networkmanager_queuedpacket = (NetworkManager.QueuedPacket) this.i.poll();
+//
+// this.a(networkmanager_queuedpacket.a, networkmanager_queuedpacket.b);
+// }
+// } finally {
+// this.j.readLock().unlock();
+// }
+//
+// }
+ // Paper end
}
public void a() {
@@ -317,7 +323,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
} else if (this.i() != null) {
this.i().a(new ChatComponentText("Disconnected"));
}
- this.i.clear(); // Free up packet queue.
+ // this.i.clear(); // Free up packet queue. // Paper - remove unneeded packet queue
}
}
--
2.12.2.windows.2