From ae97996aceee17503afe7ceeea7d8ddd75f34598 Mon Sep 17 00:00:00 2001 From: Sotr Date: Thu, 28 Mar 2019 15:46:20 +0800 Subject: [PATCH] Dynamic thread count --- .../java/io/akarin/server/core/AkarinAsyncExecutor.java | 2 +- src/main/java/net/minecraft/server/AkarinUserCache.java | 8 +++++++- work/Paper | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/akarin/server/core/AkarinAsyncExecutor.java b/src/main/java/io/akarin/server/core/AkarinAsyncExecutor.java index fe4abc692..a700ea0b4 100644 --- a/src/main/java/io/akarin/server/core/AkarinAsyncExecutor.java +++ b/src/main/java/io/akarin/server/core/AkarinAsyncExecutor.java @@ -9,7 +9,7 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; public class AkarinAsyncExecutor { private static final ExecutorService singleExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("Akarin Single Async Executor Thread - %1$d").build()); - private static final ExecutorService asyncExecutor = Executors.newFixedThreadPool(4, new ThreadFactoryBuilder().setNameFormat("Akarin Async Executor Thread - %1$d").build()); + private static final ExecutorService asyncExecutor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() / 4, new ThreadFactoryBuilder().setNameFormat("Akarin Async Executor Thread - %1$d").build()); /** * Posts a task to be executed asynchronously in a single thread diff --git a/src/main/java/net/minecraft/server/AkarinUserCache.java b/src/main/java/net/minecraft/server/AkarinUserCache.java index eb5cc5d0f..66429a1e7 100644 --- a/src/main/java/net/minecraft/server/AkarinUserCache.java +++ b/src/main/java/net/minecraft/server/AkarinUserCache.java @@ -96,6 +96,8 @@ public class AkarinUserCache { PropertyMap offlineProperties = offlineProfile.getProperties(); for (Property property : gameprofile.getProperties().get("textures")) offlineProperties.put("textures", property); + + callback.onProfileLookupSucceeded(offlineProfile); } @Override @@ -107,7 +109,11 @@ public class AkarinUserCache { profileRepo.findProfilesByNames(new String[] { keyUsername }, Agent.MINECRAFT, skinHandler); }; - AkarinAsyncExecutor.scheduleAsyncTask(lookupTextures); + if (async) + AkarinAsyncExecutor.scheduleAsyncTask(lookupTextures); + else + lookupTextures.run(); + } else { callback.onProfileLookupSucceeded(offlineProfile); } } diff --git a/work/Paper b/work/Paper index 25e5bfe66..def003392 160000 --- a/work/Paper +++ b/work/Paper @@ -1 +1 @@ -Subproject commit 25e5bfe6693b1d7177105621dfd0ec59a16adcf9 +Subproject commit def003392986c54fdc63fc3f425607998fa5013c