From d4d4727cf3436a18f0f4f303768a23b45a4b6f7f Mon Sep 17 00:00:00 2001 From: ceikry Date: Thu, 22 Jul 2021 22:18:33 -0500 Subject: [PATCH] Attempt to fix server hanging on shutdown --- Server/src/main/java/core/game/system/SystemTermination.java | 2 ++ Server/src/main/kotlin/rs09/Server.kt | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Server/src/main/java/core/game/system/SystemTermination.java b/Server/src/main/java/core/game/system/SystemTermination.java index 91475ff08..f1bb0f185 100644 --- a/Server/src/main/java/core/game/system/SystemTermination.java +++ b/Server/src/main/java/core/game/system/SystemTermination.java @@ -4,6 +4,7 @@ import core.game.ge.GrandExchangeDatabase; import core.game.interaction.object.dmc.DMCHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.login.PlayerParser; +import rs09.Server; import rs09.ServerConstants; import rs09.game.ge.OfferManager; import rs09.game.system.SystemLogger; @@ -57,6 +58,7 @@ public final class SystemTermination { if (!file.isDirectory()) { file.mkdirs(); } + Server.getReactor().terminate(); for (Iterator it = Repository.getPlayers().iterator(); it.hasNext();) { try { Player p = it.next(); diff --git a/Server/src/main/kotlin/rs09/Server.kt b/Server/src/main/kotlin/rs09/Server.kt index 2a98df8d6..6e9034a91 100644 --- a/Server/src/main/kotlin/rs09/Server.kt +++ b/Server/src/main/kotlin/rs09/Server.kt @@ -40,6 +40,7 @@ object Server { /** * The NIO reactor. */ + @JvmStatic var reactor: NioReactor? = null /** @@ -72,7 +73,8 @@ object Server { Runtime.getRuntime().addShutdownHook(ServerConstants.SHUTDOWN_HOOK) SystemLogger.logInfo("Starting networking...") try { - NioReactor.configure(43594 + GameWorld.settings?.worldId!!).start() + reactor = NioReactor.configure(43594 + GameWorld.settings?.worldId!!) + reactor!!.start() } catch (e: BindException) { SystemLogger.logErr("Port " + (43594 + GameWorld.settings?.worldId!!) + " is already in use!") throw e