Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2022-06-19 18:03:34 +0300
committerdesperateCoder <echotodevnull@gmail.com>2022-06-19 18:03:34 +0300
commit1bb9a76b256bfdca75505aee747444c2d9928ec9 (patch)
treea51bb874eacb3e4d19214b8759ae284e14818340
parent8feb098510b8adf7799023d0ac1d24272b360445 (diff)
centralized executorService, evaluate poolsize depending on available cpu cores
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java8
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/util/ExecutorServiceProvider.java23
3 files changed, 27 insertions, 10 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java
index 79790484a..7cd79ed45 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java
@@ -2,20 +2,16 @@ package it.niedermann.nextcloud.deck.api;
import androidx.annotation.NonNull;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.plugins.RxJavaPlugins;
import io.reactivex.schedulers.Schedulers;
import it.niedermann.nextcloud.deck.DeckLog;
+import it.niedermann.nextcloud.deck.util.ExecutorServiceProvider;
public class RequestHelper {
- private static final ExecutorService executor = Executors.newCachedThreadPool();
-
static {
RxJavaPlugins.setErrorHandler(DeckLog::logError);
}
@@ -27,7 +23,7 @@ public class RequestHelper {
final ResponseConsumer<T> cb = new ResponseConsumer<>(callback);
return call.getObservableFromCall()
- .subscribeOn(Schedulers.from(executor))
+ .subscribeOn(Schedulers.from(ExecutorServiceProvider.getExecutorService()))
.subscribe(cb, cb.getExceptionConsumer());
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
index 9a96ae401..50de4d2e4 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
@@ -34,9 +34,6 @@ import java.util.Optional;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -91,6 +88,7 @@ import it.niedermann.nextcloud.deck.persistence.sync.helpers.providers.StackData
import it.niedermann.nextcloud.deck.persistence.sync.helpers.providers.partial.BoardWithAclDownSyncDataProvider;
import it.niedermann.nextcloud.deck.persistence.sync.helpers.providers.partial.BoardWithStacksAndLabelsUpSyncDataProvider;
import it.niedermann.nextcloud.deck.ui.upcomingcards.UpcomingCardsAdapterItem;
+import it.niedermann.nextcloud.deck.util.ExecutorServiceProvider;
@SuppressWarnings("WeakerAccess")
public class SyncManager {
@@ -116,7 +114,7 @@ public class SyncManager {
this(context,
new DataBaseAdapter(context.getApplicationContext()),
new ServerAdapter(context.getApplicationContext(), ssoAccountName),
- new ThreadPoolExecutor(5, 5, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>()),
+ ExecutorServiceProvider.getExecutorService(),
SyncHelper::new);
LastSyncUtil.init(context.getApplicationContext());
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/ExecutorServiceProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/ExecutorServiceProvider.java
new file mode 100644
index 000000000..a2a90d4e0
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/ExecutorServiceProvider.java
@@ -0,0 +1,23 @@
+package it.niedermann.nextcloud.deck.util;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+public class ExecutorServiceProvider {
+
+ private static final int NUMBER_OF_CORES = Runtime.getRuntime().availableProcessors();
+
+ private static final ExecutorService EXECUTOR =
+ new ThreadPoolExecutor(NUMBER_OF_CORES>>1, NUMBER_OF_CORES,
+ 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
+
+ private ExecutorServiceProvider() {
+ // hide Constructor
+ }
+
+ public static ExecutorService getExecutorService() {
+ return EXECUTOR;
+ }
+}