974b0afca9
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.
68 Zeilen
2.8 KiB
Diff
68 Zeilen
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
|
|
|