From ab9aaa6195a14287d56687879bc8730badf8155a Mon Sep 17 00:00:00 2001 From: Sotr Date: Mon, 11 Jun 2018 16:00:53 +0800 Subject: [PATCH] Add thread safe relative features w/ fixes mixin usage --- .../akarin/server/mixin/lighting/MixinWorldServer.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sources/src/main/java/io/akarin/server/mixin/lighting/MixinWorldServer.java b/sources/src/main/java/io/akarin/server/mixin/lighting/MixinWorldServer.java index 008dfb7fa..4751a6fce 100644 --- a/sources/src/main/java/io/akarin/server/mixin/lighting/MixinWorldServer.java +++ b/sources/src/main/java/io/akarin/server/mixin/lighting/MixinWorldServer.java @@ -29,7 +29,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import javax.annotation.Nullable; -import org.bukkit.Bukkit; import org.spongepowered.asm.mixin.Mixin; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -54,8 +53,12 @@ public abstract class MixinWorldServer extends MixinWorld implements IMixinWorld private static final short XZ_MASK = 0xF; private static final short Y_SHORT_MASK = 0xFF; - private final ExecutorService lightExecutorService = AkarinGlobalConfig.asyncLightingWorkStealing ? - Executors.newFixedThreadPool(AkarinGlobalConfig.asyncLightingThreads, new ThreadFactoryBuilder().setNameFormat("Akarin Async Light Thread").build()) : Executors.newWorkStealingPool(AkarinGlobalConfig.asyncLightingThreads); + private final ExecutorService lightExecutorService = preparExecutorService();; + + private ExecutorService preparExecutorService() { + return AkarinGlobalConfig.asyncLightingWorkStealing ? + Executors.newFixedThreadPool(AkarinGlobalConfig.asyncLightingThreads, new ThreadFactoryBuilder().setNameFormat("Akarin Async Light Thread").build()) : Executors.newWorkStealingPool(AkarinGlobalConfig.asyncLightingThreads); + } @Override public boolean checkLightFor(EnumSkyBlock lightType, BlockPosition pos) { // PAIL: checkLightFor