|
|
|
@ -520,9 +520,46 @@ public class WorldServer {
@@ -520,9 +520,46 @@ public class WorldServer {
|
|
|
|
|
Logger.info("Starting Player Update Thread"); |
|
|
|
|
UpdateThread.startUpdateThread(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
printThreads(); |
|
|
|
|
Logger.info("Threads Running:"); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void printThreads() { |
|
|
|
|
// Get the root thread group
|
|
|
|
|
ThreadGroup rootGroup = Thread.currentThread().getThreadGroup(); |
|
|
|
|
while (rootGroup.getParent() != null) { |
|
|
|
|
rootGroup = rootGroup.getParent(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Estimate the number of threads
|
|
|
|
|
int activeThreads = rootGroup.activeCount(); |
|
|
|
|
|
|
|
|
|
// Create an array to hold the threads
|
|
|
|
|
Thread[] threads = new Thread[activeThreads]; |
|
|
|
|
|
|
|
|
|
// Get the active threads
|
|
|
|
|
rootGroup.enumerate(threads, true); |
|
|
|
|
|
|
|
|
|
int availableThreads = Runtime.getRuntime().availableProcessors(); |
|
|
|
|
|
|
|
|
|
// Print the count
|
|
|
|
|
Logger.info("Total threads in application: " + threads.length + " / " + availableThreads + " Total Threads On Machine"); |
|
|
|
|
if(threads.length > (int)(availableThreads * 0.75f)){ |
|
|
|
|
Logger.error("WARNING! Too many threads are being used, hardware update recommended"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Optionally, list the thread names
|
|
|
|
|
Logger.info("Active threads:"); |
|
|
|
|
for (Thread thread : threads) { |
|
|
|
|
if (thread != null) { |
|
|
|
|
Logger.info(thread.getName()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected boolean initDatabaselayer() { |
|
|
|
|
|
|
|
|
|
// Try starting a GOM <-> DB connection.
|
|
|
|
|