mirror of
https://github.com/barkeser2002/CatServer.git
synced 2026-09-25 11:25:55 +03:00
37 lines
1.7 KiB
Diff
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);
|