From 4f12582a414d0c9bc6d9441e400037febfc5a2f4 Mon Sep 17 00:00:00 2001 From: FalsePattern <30945458+FalsePattern@users.noreply.github.com> Date: Fri, 10 Jun 2022 02:55:46 +0200 Subject: [PATCH] moved async worker to public package --- .../lib/internal/FalsePatternLib.java | 8 -------- .../lib/internal/proxy/ClientProxy.java | 3 ++- .../lib/internal/proxy/CommonProxy.java | 3 ++- .../lib/updates/UpdateChecker.java | 5 ++--- .../java/com/falsepattern/lib/util/Async.java | 18 ++++++++++++++++++ 5 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/falsepattern/lib/util/Async.java diff --git a/src/main/java/com/falsepattern/lib/internal/FalsePatternLib.java b/src/main/java/com/falsepattern/lib/internal/FalsePatternLib.java index 45995b6..65a0b8e 100644 --- a/src/main/java/com/falsepattern/lib/internal/FalsePatternLib.java +++ b/src/main/java/com/falsepattern/lib/internal/FalsePatternLib.java @@ -52,14 +52,6 @@ public class FalsePatternLib { @Getter private static final boolean developerEnvironment = (boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"); - @Getter - private static final ExecutorService asyncWorker = Executors.newSingleThreadExecutor((runnable) -> { - Thread thread = new Thread(runnable); - thread.setDaemon(true); - thread.setName(Tags.MODNAME + " Async Worker"); - return thread; - }); - @SidedProxy(clientSide = Tags.GROUPNAME + ".internal.proxy.ClientProxy", serverSide = Tags.GROUPNAME + ".internal.proxy.CommonProxy") private static CommonProxy proxy; diff --git a/src/main/java/com/falsepattern/lib/internal/proxy/ClientProxy.java b/src/main/java/com/falsepattern/lib/internal/proxy/ClientProxy.java index 9abd853..1eea1e5 100644 --- a/src/main/java/com/falsepattern/lib/internal/proxy/ClientProxy.java +++ b/src/main/java/com/falsepattern/lib/internal/proxy/ClientProxy.java @@ -2,6 +2,7 @@ package com.falsepattern.lib.internal.proxy; import com.falsepattern.lib.internal.FalsePatternLib; import com.falsepattern.lib.text.FormattedText; +import com.falsepattern.lib.util.Async; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -33,7 +34,7 @@ public class ClientProxy extends CommonProxy { @Override public void postInit(FMLPostInitializationEvent e) { super.postInit(e); - chatFuture = FalsePatternLib.getAsyncWorker().submit(() -> { + chatFuture = Async.asyncWorker.submit(() -> { long start = System.nanoTime(); val updates = updatesFuture.get(); if (updates == null || updates.size() == 0) return null; diff --git a/src/main/java/com/falsepattern/lib/internal/proxy/CommonProxy.java b/src/main/java/com/falsepattern/lib/internal/proxy/CommonProxy.java index 7960909..8010849 100644 --- a/src/main/java/com/falsepattern/lib/internal/proxy/CommonProxy.java +++ b/src/main/java/com/falsepattern/lib/internal/proxy/CommonProxy.java @@ -7,6 +7,7 @@ import com.falsepattern.lib.internal.LibraryConfig; import com.falsepattern.lib.internal.Tags; import com.falsepattern.lib.updates.ModUpdateInfo; import com.falsepattern.lib.updates.UpdateChecker; +import com.falsepattern.lib.util.Async; import cpw.mods.fml.common.event.FMLConstructionEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -35,7 +36,7 @@ public class CommonProxy { if (LibraryConfig.ENABLE_UPDATE_CHECKER) { FalsePatternLib.getLog().info("Launching asynchronous update check."); val updateCheckFuture = UpdateChecker.fetchUpdatesAsync("https://falsepattern.com/mc/versions.json"); - updatesFuture = FalsePatternLib.getAsyncWorker().submit(() -> { + updatesFuture = Async.asyncWorker.submit(() -> { if (!updateCheckFuture.isCancelled()) { try { var updates = updateCheckFuture.get(); diff --git a/src/main/java/com/falsepattern/lib/updates/UpdateChecker.java b/src/main/java/com/falsepattern/lib/updates/UpdateChecker.java index 3f6fd86..1b10185 100644 --- a/src/main/java/com/falsepattern/lib/updates/UpdateChecker.java +++ b/src/main/java/com/falsepattern/lib/updates/UpdateChecker.java @@ -8,6 +8,7 @@ import com.falsepattern.lib.internal.FalsePatternLib; import com.falsepattern.lib.internal.Internet; import com.falsepattern.lib.internal.LibraryConfig; import com.falsepattern.lib.internal.Tags; +import com.falsepattern.lib.util.Async; import cpw.mods.fml.common.Loader; import lombok.val; @@ -18,8 +19,6 @@ import java.net.URL; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; @@ -34,7 +33,7 @@ public class UpdateChecker { * @return A future that will contain the update info about mods that were both available on the URL and installed */ public static Future> fetchUpdatesAsync(String url) { - return FalsePatternLib.getAsyncWorker().submit(() -> fetchUpdates(url)); + return Async.asyncWorker.submit(() -> fetchUpdates(url)); } /** diff --git a/src/main/java/com/falsepattern/lib/util/Async.java b/src/main/java/com/falsepattern/lib/util/Async.java new file mode 100644 index 0000000..eac02ee --- /dev/null +++ b/src/main/java/com/falsepattern/lib/util/Async.java @@ -0,0 +1,18 @@ +package com.falsepattern.lib.util; + +import com.falsepattern.lib.StableAPI; +import com.falsepattern.lib.internal.Tags; +import lombok.Getter; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +@StableAPI(since = "0.8.0") +public class Async { + public static final ExecutorService asyncWorker = Executors.newSingleThreadExecutor((runnable) -> { + Thread thread = new Thread(runnable); + thread.setDaemon(true); + thread.setName(Tags.MODNAME + " Async Worker"); + return thread; + }); +}