From 4e18d19cd8125cefe061cbb128403c429f645319 Mon Sep 17 00:00:00 2001 From: Obique Date: Sat, 16 May 2015 03:16:05 -0500 Subject: [PATCH] Using ThreadUtilities to name thread pools for easier debugging --- src/resources/control/IntentManager.java | 4 +- src/services/chat/ChatService.java | 52 ---------------------- src/services/galaxy/ConnectionService.java | 3 +- 3 files changed, 5 insertions(+), 54 deletions(-) diff --git a/src/resources/control/IntentManager.java b/src/resources/control/IntentManager.java index 3920c94f2..5d465f80e 100644 --- a/src/resources/control/IntentManager.java +++ b/src/resources/control/IntentManager.java @@ -38,6 +38,8 @@ import java.util.concurrent.Executors; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.TimeUnit; +import utilities.ThreadUtilities; + /** * Don't you dare make this public. @@ -65,7 +67,7 @@ class IntentManager { public void initialize() { if (!initialized) { - broadcastThreads = Executors.newCachedThreadPool(); + broadcastThreads = Executors.newCachedThreadPool(ThreadUtilities.newThreadFactory("intent-processor-%d")); intentRegistrations = new HashMap>(); intentQueue = new ConcurrentLinkedQueue(); initialized = true; diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index 0292ad13b..f2ee98d2f 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -31,11 +31,6 @@ import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.Locale; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; import intents.GalacticPacketIntent; import intents.NotifyPlayersPacketIntent; @@ -60,7 +55,6 @@ import network.packets.swg.zone.chat.ChatSystemMessage.SystemChatType; import network.packets.swg.zone.object_controller.SpatialChat; import resources.Terrain; import resources.control.Intent; -import resources.control.ServerStatus; import resources.control.Service; import resources.encodables.OutOfBand; import resources.encodables.ProsePackage; @@ -123,11 +117,6 @@ public class ChatService extends Service { if (i instanceof ChatBroadcastIntent) handleChatBroadcast((ChatBroadcastIntent) i); break; - case ServerStatusIntent.TYPE: - if (i instanceof ServerStatusIntent) - if (((ServerStatusIntent)i).getStatus() == ServerStatus.SHUTDOWN_REQUESTED) - sendShutdownBroadcasts((ServerStatusIntent) i); - break; } } @@ -311,47 +300,6 @@ public class ChatService extends Service { player.sendPacket(new ChatSystemMessage(SystemChatType.SCREEN_AND_CHAT, pckg)); } - private void sendShutdownBroadcasts(ServerStatusIntent i) { - final TimeUnit timeUnit = i.getTimeUnit(); - final long time = i.getTime(); - final TimeUnit broadcastUnit = TimeUnit.NANOSECONDS; - final long timeNanoSeconds = broadcastUnit.convert(time, timeUnit); - final AtomicLong intervalCount = new AtomicLong((long) Math.ceil(Math.sqrt(Math.sqrt(timeNanoSeconds)) / 200)); - final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); - final AtomicInteger runCount = new AtomicInteger(); - final AtomicLong timeRemaining = new AtomicLong(time); - final long timeBetweenBroadcasts; - final String finalShutdownMessage = "The server will now be shutting down."; - - if(intervalCount.get() > timeNanoSeconds) - intervalCount.set(time); - - if(time > 0) { - timeBetweenBroadcasts = timeNanoSeconds / intervalCount.get(); - - executor.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - String message; - long timeRemainingVal = timeRemaining.get(); - - if(runCount.getAndIncrement() == intervalCount.get()) { - message = finalShutdownMessage; - executor.shutdown(); - } else { - String unitName = timeUnit.name().toLowerCase(Locale.ENGLISH); - message = String.format("The server will be shutting down in %d %s", timeRemainingVal, unitName.substring(0, unitName.length() - 1)); - message += (timeRemainingVal == 1 ? "" : "s") + "."; - timeRemaining.set(timeRemainingVal - timeUnit.convert(timeBetweenBroadcasts, broadcastUnit)); - } - - broadcastGalaxyMessage(message, null); - } - }, 0, timeBetweenBroadcasts, broadcastUnit); - } else - broadcastGalaxyMessage(finalShutdownMessage, null); - } - private void sendPersistentMessageHeaders(Player player, String galaxy) { if (player == null || player.getCreatureObject() == null) return; diff --git a/src/services/galaxy/ConnectionService.java b/src/services/galaxy/ConnectionService.java index b7333043c..3cd822d40 100644 --- a/src/services/galaxy/ConnectionService.java +++ b/src/services/galaxy/ConnectionService.java @@ -48,6 +48,7 @@ import resources.player.Player; import resources.player.PlayerEvent; import resources.player.PlayerFlags; import resources.player.PlayerState; +import utilities.ThreadUtilities; public class ConnectionService extends Service { @@ -61,7 +62,7 @@ public class ConnectionService extends Service { private final List zonedInPlayers; public ConnectionService() { - updateService = Executors.newSingleThreadScheduledExecutor(); + updateService = Executors.newSingleThreadScheduledExecutor(ThreadUtilities.newThreadFactory("conn-update-service")); zonedInPlayers = new LinkedList(); disappearPlayers = new LinkedList(); updateRunnable = new Runnable() {