f4a47db699
Switch to a standard fixed size ThreadPoolExecutor as we don't use the advanced capabilities of a ForkJoinPool. ForkJoinPool does not allow single threads, and really rather not use 2 different executor types based on core count. Also, change thread priorities so that main thread is prioritized by the OS at a higher priority than the other threads. May not help too much but it at least signals the OS the information to know main is more important.
43 lines
2.3 KiB
Diff
43 lines
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
Date: Mon, 13 May 2019 21:10:59 -0700
|
|
Subject: [PATCH] Fix CraftServer#isPrimaryThread and MinecraftServer
|
|
isMainThread
|
|
|
|
md_5 changed it so he could shut down the server asynchronously
|
|
from watchdog, although we have patches that prevent that type
|
|
of behavior for this exact reason.
|
|
|
|
md_5 also placed code in PlayerConnectionUtils that would have
|
|
solved https://bugs.mojang.com/browse/MC-142590, making the change
|
|
to MinecraftServer#isMainThread irrelevant.
|
|
By reverting his change to MinecraftServer#isMainThread packet
|
|
handling that should have been handled synchronously will be handled
|
|
synchronously when the server gets shut down.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index 992c03d799f9dbbb9f63559d787124b04b00283e..eabca3975af61b669fd31a23cb7c27883db7833e 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -2221,7 +2221,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
|
// CraftBukkit start
|
|
@Override
|
|
public boolean isMainThread() {
|
|
- return super.isMainThread() || this.isStopped(); // CraftBukkit - MC-142590
|
|
+ return super.isMainThread() /*|| this.isStopped()*/; // CraftBukkit - MC-142590 // Paper - causes issues elsewhere
|
|
}
|
|
|
|
@Deprecated
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 811e676e4f9f1f8beb8eb9e20cef3ef03633a856..14cc12d772fe8c879a282275e3ee76cd66047c6b 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -1706,7 +1706,7 @@ public final class CraftServer implements Server {
|
|
|
|
@Override
|
|
public boolean isPrimaryThread() {
|
|
- return Thread.currentThread().equals(console.serverThread) || console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog)
|
|
+ return Thread.currentThread().equals(console.serverThread); // Paper - Fix issues with detecting main thread properly
|
|
}
|
|
|
|
@Override
|