mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-11-29 14:15:43 +01:00
0a19056af0
Fixes bad performance out of the box for production. Apparently there's another issue which is thinkering our minds up, it is that after certain amount of time the gc just can't keep up. We're investigating into this, but until it is fixed - this is gonna be a stable build Co-authored-by: Mykyta Komarn <nkomarn@hotmail.com>
45 lines
2.7 KiB
Diff
45 lines
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Ivan Pekov <ivan@mrivanplays.com>
|
|
Date: Mon, 5 Oct 2020 17:09:00 +0300
|
|
Subject: [PATCH] Ensure pools create daemon threads
|
|
|
|
If only 1 non-daemon thread is left to run when the server is shutting down, the server won't shut down.
|
|
This patche ensures that executors make daemon threads.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
|
|
index fa0a8a7e00a64df4d3ba09407193d984e1ff0952..a747d75e3da17c077ccf2cf16be0b7f35b8a4c4b 100644
|
|
--- a/src/main/java/net/minecraft/server/LoginListener.java
|
|
+++ b/src/main/java/net/minecraft/server/LoginListener.java
|
|
@@ -107,7 +107,11 @@ 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())
|
|
+ r -> { // Yatopia start - make sure produced threads are daemon ones
|
|
+ Thread thread = new Thread(r, "User Authenticator #" + threadId.incrementAndGet());
|
|
+ thread.setDaemon(true);
|
|
+ return thread;
|
|
+ } // Yatopia end
|
|
);
|
|
// Paper end
|
|
// Spigot start
|
|
diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java
|
|
index 653ba0f1d84af1997d768426d3542c9d465f6c93..748742fb03c6066a72ac6046a96e8d9f8fad2694 100644
|
|
--- a/src/main/java/net/minecraft/server/MCUtil.java
|
|
+++ b/src/main/java/net/minecraft/server/MCUtil.java
|
|
@@ -42,12 +42,12 @@ public final class MCUtil {
|
|
public static final ThreadPoolExecutor asyncExecutor = new ThreadPoolExecutor(
|
|
0, 2, 60L, TimeUnit.SECONDS,
|
|
new LinkedBlockingQueue<Runnable>(),
|
|
- new ThreadFactoryBuilder().setNameFormat("Paper Async Task Handler Thread - %1$d").build()
|
|
+ new ThreadFactoryBuilder().setDaemon(true).setNameFormat("Paper Async Task Handler Thread - %1$d").build() // Yatopia - daemon
|
|
);
|
|
public static final ThreadPoolExecutor cleanerExecutor = new ThreadPoolExecutor(
|
|
1, 1, 0L, TimeUnit.SECONDS,
|
|
new LinkedBlockingQueue<Runnable>(),
|
|
- new ThreadFactoryBuilder().setNameFormat("Paper Object Cleaner").build()
|
|
+ new ThreadFactoryBuilder().setDaemon(true).setNameFormat("Paper Object Cleaner").build() // Yatopia - daemon
|
|
);
|
|
|
|
public static final long INVALID_CHUNK_KEY = getCoordinateKey(Integer.MAX_VALUE, Integer.MAX_VALUE);
|