Add shutdown hook

Signed-off-by: Graham <gpe@openrs2.org>
pull/132/head
Graham 3 years ago
parent dc4b769f29
commit 43b8be3ff3
  1. 14
      game/src/main/kotlin/org/openrs2/game/GameServer.kt

@ -13,16 +13,28 @@ public class GameServer @Inject constructor(
private val serviceManager = ServiceManager(services)
public fun run(start: Long) {
serviceManager.startAsync().awaitHealthy()
val shutdownHook = Thread(::stop)
serviceManager.startAsync()
runtime.addShutdownHook(shutdownHook)
serviceManager.awaitHealthy()
val elapsed = System.nanoTime() - start
logger.info { "Started OpenRS2 in ${elapsed / NANOS_PER_MILLI} milliseconds" }
serviceManager.awaitStopped()
runtime.removeShutdownHook(shutdownHook)
}
private fun stop() {
logger.info { "Stopping OpenRS2..." }
serviceManager.stopAsync().awaitStopped()
logger.info { "Stopped OpenRS2" }
}
private companion object {
private val logger = InlineLogger()
private val runtime = Runtime.getRuntime()
private const val NANOS_PER_MILLI = 1_000_000
}
}

Loading…
Cancel
Save