Files
CatServer/patches/net/minecraft/server/dedicated/ServerHangWatchdog.java.patch
2019-02-24 22:29:41 +08:00

37 lines
1.7 KiB
Diff

--- ../src-base/minecraft/net/minecraft/server/dedicated/ServerHangWatchdog.java
+++ ../src-work/minecraft/net/minecraft/server/dedicated/ServerHangWatchdog.java
@@ -22,6 +22,7 @@
private static final Logger LOGGER = LogManager.getLogger();
private final DedicatedServer server;
private final long maxTickTime;
+ private boolean firstRun = true;
public ServerHangWatchdog(DedicatedServer server)
{
@@ -37,14 +38,14 @@
long j = MinecraftServer.getCurrentTimeMillis();
long k = j - i;
- if (k > this.maxTickTime)
+ if (k > this.maxTickTime && !this.firstRun)
{
LOGGER.fatal("A single server tick took {} seconds (should be max {})", String.format("%.2f", (float)k / 1000.0F), String.format("%.2f", 0.05F));
LOGGER.fatal("Considering it to be crashed, server will forcibly shutdown.");
ThreadMXBean threadmxbean = ManagementFactory.getThreadMXBean();
ThreadInfo[] athreadinfo = threadmxbean.dumpAllThreads(true, true);
StringBuilder stringbuilder = new StringBuilder();
- Error error = new Error();
+ Error error = new Error(String.format("ServerHangWatchdog detected that a single server tick took %.2f seconds (should be max 0.05)", k / 1000F)); // Forge: don't just make a crash report with a seemingly-inexplicable Error
for (ThreadInfo threadinfo : athreadinfo)
{
@@ -75,6 +76,8 @@
this.scheduleHalt();
}
+ this.firstRun = false;
+
try
{
Thread.sleep(i + this.maxTickTime - j);