geforkt von Mirrors/Paper
70ce6ce831
This makes it easier for downstream projects (forks) to replace the version fetching system with their own. It is as simple as implementing an interface and overriding the default implementation of org.bukkit.UnsafeValues#getVersionFetcher() It also makes it easier for us to organize things like the version history feature. Lastly I have updated the paper implementation to check against the site API rather than against jenkins.
71 Zeilen
2.9 KiB
Diff
71 Zeilen
2.9 KiB
Diff
From d482793affe9ce0c643010d6ba5401aa1dbf331e 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 b85b048ac..22d5c7d20 100644
|
|
--- a/src/main/java/net/minecraft/server/LoginListener.java
|
|
+++ b/src/main/java/net/minecraft/server/LoginListener.java
|
|
@@ -92,6 +92,12 @@ public class LoginListener implements PacketLoginInListener {
|
|
|
|
}
|
|
|
|
+ // 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()
|
|
{
|
|
@@ -170,8 +176,8 @@ public class LoginListener implements PacketLoginInListener {
|
|
this.networkManager.sendPacket(new PacketLoginOutEncryptionBegin("", this.server.getKeyPair().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 {
|
|
@@ -182,7 +188,8 @@ public class LoginListener implements PacketLoginInListener {
|
|
server.server.getLogger().log(java.util.logging.Level.WARNING, "Exception verifying " + i.getName(), ex);
|
|
}
|
|
}
|
|
- }.start();
|
|
+ });
|
|
+ // Paper end
|
|
// Spigot end
|
|
}
|
|
|
|
@@ -199,7 +206,8 @@ public class LoginListener implements PacketLoginInListener {
|
|
this.loginKey = packetlogininencryptionbegin.a(privatekey);
|
|
this.g = LoginListener.EnumProtocolState.AUTHENTICATING;
|
|
this.networkManager.a(this.loginKey);
|
|
- Thread thread = new Thread("User Authenticator #" + LoginListener.b.incrementAndGet()) {
|
|
+ // Paper start - Cache authenticator threads
|
|
+ authenticatorPool.execute(new Runnable() {
|
|
public void run() {
|
|
GameProfile gameprofile = LoginListener.this.i;
|
|
|
|
@@ -246,10 +254,8 @@ public class LoginListener implements PacketLoginInListener {
|
|
|
|
return LoginListener.this.server.T() && socketaddress instanceof InetSocketAddress ? ((InetSocketAddress) socketaddress).getAddress() : null;
|
|
}
|
|
- };
|
|
-
|
|
- thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(LoginListener.LOGGER));
|
|
- thread.start();
|
|
+ });
|
|
+ // Paper end
|
|
}
|
|
}
|
|
|
|
--
|
|
2.21.0
|
|
|