Skip to content

Commit bd179f8

Browse files
committed
Merge 1.18 into 1.19.2
2 parents 40ec3f1 + fd72aa4 commit bd179f8

File tree

4 files changed

+44
-39
lines changed

4 files changed

+44
-39
lines changed

common/src/main/java/org/embeddedt/modernfix/ModernFix.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.embeddedt.modernfix.platform.ModernFixPlatformHooks;
1313
import org.embeddedt.modernfix.resources.ReloadExecutor;
1414
import org.embeddedt.modernfix.util.ClassInfoManager;
15-
import org.embeddedt.modernfix.world.IntegratedWatchdog;
1615

1716
import java.lang.management.ManagementFactory;
1817
import java.util.concurrent.ExecutorService;
@@ -52,19 +51,6 @@ public ModernFix() {
5251
if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.snapshot_easter_egg.NameChange") && !SharedConstants.getCurrentVersion().isStable())
5352
NAME = "PreemptiveFix";
5453
ModernFixPlatformHooks.onServerCommandRegister(ModernFixCommands::register);
55-
if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.spam_thread_dump.ThreadDumper")) {
56-
Thread t = new Thread() {
57-
public void run() {
58-
while(true) {
59-
LOGGER.error("------ DEBUG THREAD DUMP (occurs every 60 seconds) ------");
60-
LOGGER.error(IntegratedWatchdog.obtainThreadDump());
61-
try { Thread.sleep(60000); } catch(InterruptedException e) {}
62-
}
63-
}
64-
};
65-
t.setDaemon(true);
66-
t.start();
67-
}
6854
}
6955

7056
public void onServerStarted() {

common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.embeddedt.modernfix.core.config.ModernFixEarlyConfig;
66
import org.embeddedt.modernfix.core.config.Option;
77
import org.embeddedt.modernfix.platform.ModernFixPlatformHooks;
8+
import org.embeddedt.modernfix.world.ThreadDumper;
89
import org.objectweb.asm.tree.*;
910
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
1011
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
@@ -62,6 +63,20 @@ public ModernFixMixinPlugin() {
6263

6364
/* We abuse the constructor of a mixin plugin as a safe location to start modifying the classloader */
6465
ModernFixPlatformHooks.injectPlatformSpecificHacks();
66+
67+
if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.spam_thread_dump.ThreadDumper")) {
68+
Thread t = new Thread() {
69+
public void run() {
70+
while(true) {
71+
logger.error("------ DEBUG THREAD DUMP (occurs every 60 seconds) ------");
72+
logger.error(ThreadDumper.obtainThreadDump());
73+
try { Thread.sleep(60000); } catch(InterruptedException e) {}
74+
}
75+
}
76+
};
77+
t.setDaemon(true);
78+
t.start();
79+
}
6580
}
6681
}
6782

common/src/main/java/org/embeddedt/modernfix/world/IntegratedWatchdog.java

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
import net.minecraft.server.MinecraftServer;
77
import org.slf4j.Logger;
88

9-
import java.lang.management.ManagementFactory;
10-
import java.lang.management.ThreadInfo;
11-
import java.lang.management.ThreadMXBean;
129
import java.lang.ref.WeakReference;
1310

1411
public class IntegratedWatchdog extends Thread {
@@ -25,27 +22,6 @@ public IntegratedWatchdog(MinecraftServer server) {
2522
this.setName("ModernFix integrated server watchdog");
2623
}
2724

28-
public static String obtainThreadDump() {
29-
ThreadMXBean threadmxbean = ManagementFactory.getThreadMXBean();
30-
ThreadInfo[] athreadinfo = threadmxbean.dumpAllThreads(true, true);
31-
StringBuilder sb = new StringBuilder();
32-
sb.append("Thread Dump:\n");
33-
for(ThreadInfo threadinfo : athreadinfo) {
34-
sb.append(threadinfo);
35-
StackTraceElement[] elements = threadinfo.getStackTrace();
36-
if(elements.length > 8) {
37-
sb.append("extended trace:\n");
38-
for(int i = 8; i < elements.length; i++) {
39-
sb.append("\tat ");
40-
sb.append(elements[i]);
41-
sb.append('\n');
42-
}
43-
}
44-
sb.append('\n');
45-
}
46-
return sb.toString();
47-
}
48-
4925
public void run() {
5026
while(true) {
5127
MinecraftServer server = this.server.get();
@@ -56,7 +32,7 @@ public void run() {
5632
long delta = curTime - nextTick;
5733
if(delta > MAX_TICK_DELTA) {
5834
LOGGER.error("A single server tick has taken {}, more than {} milliseconds", delta, MAX_TICK_DELTA);
59-
LOGGER.error(obtainThreadDump());
35+
LOGGER.error(ThreadDumper.obtainThreadDump());
6036
nextTick = 0;
6137
curTime = 0;
6238
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.embeddedt.modernfix.world;
2+
3+
import java.lang.management.ManagementFactory;
4+
import java.lang.management.ThreadInfo;
5+
import java.lang.management.ThreadMXBean;
6+
7+
public class ThreadDumper {
8+
public static String obtainThreadDump() {
9+
ThreadMXBean threadmxbean = ManagementFactory.getThreadMXBean();
10+
ThreadInfo[] athreadinfo = threadmxbean.dumpAllThreads(true, true);
11+
StringBuilder sb = new StringBuilder();
12+
sb.append("Thread Dump:\n");
13+
for(ThreadInfo threadinfo : athreadinfo) {
14+
sb.append(threadinfo);
15+
StackTraceElement[] elements = threadinfo.getStackTrace();
16+
if(elements.length > 8) {
17+
sb.append("extended trace:\n");
18+
for(int i = 8; i < elements.length; i++) {
19+
sb.append("\tat ");
20+
sb.append(elements[i]);
21+
sb.append('\n');
22+
}
23+
}
24+
sb.append('\n');
25+
}
26+
return sb.toString();
27+
}
28+
}

0 commit comments

Comments
 (0)