Paper/Spigot-Server-Patches/0169-Cache-user-authenticator-threads.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

68 lines
2.8 KiB
Diff

From 08f57ad5059ec5d13942f6abd194ce96003c043a Mon Sep 17 00:00:00 2001
From: vemacs <d@nkmem.es>
Date: Wed, 23 Nov 2016 08:31:45 -0500
Subject: [PATCH] Cache user authenticator threads
diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
index fe390feb9..350ec0323 100644
--- a/src/main/java/net/minecraft/server/LoginListener.java
+++ b/src/main/java/net/minecraft/server/LoginListener.java
@@ -84,6 +84,12 @@ public class LoginListener implements PacketLoginInListener, ITickable {
}
+ // Paper start - Cache authenticator threads
+ private static final AtomicInteger threadId = new AtomicInteger(0);
+ private static final java.util.concurrent.ExecutorService authenticatorPool = java.util.concurrent.Executors.newCachedThreadPool(
+ r -> new Thread(r, "User Authenticator #" + threadId.incrementAndGet())
+ );
+ // Paper end
// Spigot start
public void initUUID()
{
@@ -166,8 +172,8 @@ public class LoginListener implements PacketLoginInListener, ITickable {
this.networkManager.sendPacket(new PacketLoginOutEncryptionBegin("", this.server.O().getPublic(), this.e));
} else {
// Spigot start
- new Thread("User Authenticator #" + LoginListener.b.incrementAndGet()) {
-
+ // Paper start - Cache authenticator threads
+ authenticatorPool.execute(new Runnable() {
@Override
public void run() {
try {
@@ -179,7 +185,8 @@ public class LoginListener implements PacketLoginInListener, ITickable {
server.server.getLogger().log(java.util.logging.Level.WARNING, "Exception verifying " + i.getName(), ex);
}
}
- }.start();
+ });
+ // Paper end
// Spigot end
}
@@ -195,7 +202,8 @@ public class LoginListener implements PacketLoginInListener, ITickable {
this.loginKey = packetlogininencryptionbegin.a(privatekey);
this.g = LoginListener.EnumProtocolState.AUTHENTICATING;
this.networkManager.a(this.loginKey);
- (new Thread("User Authenticator #" + LoginListener.b.incrementAndGet()) {
+ // Paper start - Cache authenticator threads
+ authenticatorPool.execute(new Runnable() {
public void run() {
GameProfile gameprofile = LoginListener.this.i;
@@ -242,7 +250,8 @@ public class LoginListener implements PacketLoginInListener, ITickable {
return LoginListener.this.server.ac() && socketaddress instanceof InetSocketAddress ? ((InetSocketAddress) socketaddress).getAddress() : null;
}
- }).start();
+ });
+ // Paper end
}
}
--
2.12.2.windows.2