From 84d2052e6a98360e549e712e33e11924603d047d Mon Sep 17 00:00:00 2001 From: rtm516 Date: Wed, 19 Jun 2024 21:22:42 +0100 Subject: [PATCH] Use the thread pool for things so its shutdown properly Fixes #53 --- .../bootstrap/geyser/MCXboxBroadcastExtension.java | 6 +++--- .../com/rtm516/mcxboxbroadcast/core/SessionManager.java | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bootstrap/geyser/src/main/java/com/rtm516/mcxboxbroadcast/bootstrap/geyser/MCXboxBroadcastExtension.java b/bootstrap/geyser/src/main/java/com/rtm516/mcxboxbroadcast/bootstrap/geyser/MCXboxBroadcastExtension.java index 2cfdb4f..da0b4eb 100644 --- a/bootstrap/geyser/src/main/java/com/rtm516/mcxboxbroadcast/bootstrap/geyser/MCXboxBroadcastExtension.java +++ b/bootstrap/geyser/src/main/java/com/rtm516/mcxboxbroadcast/bootstrap/geyser/MCXboxBroadcastExtension.java @@ -100,7 +100,7 @@ private void restart() { sessionManager = new SessionManager(this.dataFolder().toString(), logger); // Pull onto another thread so we don't hang the main thread - new Thread(this::createSession); + sessionManager.scheduledThread().execute(this::createSession); } @Subscribe @@ -112,7 +112,7 @@ public void onPostInitialize(GeyserPostInitializeEvent event) { config = ConfigLoader.load(this, MCXboxBroadcastExtension.class, ExtensionConfig.class); // Pull onto another thread so we don't hang the main thread - new Thread(() -> { + sessionManager.scheduledThread().execute(() -> { // Get the ip to broadcast String ip = config.remoteAddress(); if (ip.equals("auto")) { @@ -152,7 +152,7 @@ public void onPostInitialize(GeyserPostInitializeEvent event) { sessionInfo.setPort(port); createSession(); - }).start(); + }); } private void createSession() { diff --git a/core/src/main/java/com/rtm516/mcxboxbroadcast/core/SessionManager.java b/core/src/main/java/com/rtm516/mcxboxbroadcast/core/SessionManager.java index da3c145..801b828 100644 --- a/core/src/main/java/com/rtm516/mcxboxbroadcast/core/SessionManager.java +++ b/core/src/main/java/com/rtm516/mcxboxbroadcast/core/SessionManager.java @@ -94,7 +94,7 @@ public void init(SessionInfo sessionInfo, FriendSyncConfig friendSyncConfig) thr // Create the sub-sessions in a new thread so we don't block the main thread List finalSubSessions = subSessions; - new Thread(() -> { + scheduledThreadPool.execute(() -> { // Create the sub-session manager for each sub-session for (String subSession : finalSubSessions) { try { @@ -107,7 +107,7 @@ public void init(SessionInfo sessionInfo, FriendSyncConfig friendSyncConfig) thr // TODO Retry creation after 30s or so } } - }).start(); + }); } @Override