From 4d69bf2aba12a7ae98ab0f3deedfd9bc3b38c57f Mon Sep 17 00:00:00 2001 From: tarsin Date: Sun, 5 Feb 2023 14:32:31 +0800 Subject: [PATCH] Introduce new Decoder scope --- .../java/com/hippo/ehviewer/spider/SpiderQueen.java | 4 ++++ .../com/hippo/ehviewer/spider/SpiderQueenDecoder.kt | 11 +++++++++++ 2 files changed, 15 insertions(+) create mode 100644 app/src/main/java/com/hippo/ehviewer/spider/SpiderQueenDecoder.kt diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java index 2468c9789..2d6878f50 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.java @@ -106,6 +106,7 @@ public final class SpiderQueen implements Runnable { @Nullable private volatile Thread mQueenThread; private SpiderQueenWorker mWorkerScope; + private SpiderQueenDecoder mDecoderScope; private boolean mStoped = false; private SpiderQueen(@NonNull GalleryInfo galleryInfo) { @@ -118,6 +119,7 @@ public final class SpiderQueen implements Runnable { } mWorkerScope = new SpiderQueenWorker(this); + mDecoderScope = new SpiderQueenDecoder(this); } @UiThread @@ -353,6 +355,8 @@ public final class SpiderQueen implements Runnable { CoroutineScopeKt.cancel(mWorkerScope, null); mWorkerScope = null; + CoroutineScopeKt.cancel(mDecoderScope, null); + mDecoderScope = null; } public int size() { diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueenDecoder.kt b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueenDecoder.kt new file mode 100644 index 000000000..af137b0e7 --- /dev/null +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueenDecoder.kt @@ -0,0 +1,11 @@ +package com.hippo.ehviewer.spider + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlin.coroutines.CoroutineContext + +class SpiderQueenDecoder(private val queen: SpiderQueen) : CoroutineScope { + override val coroutineContext: CoroutineContext + get() = Dispatchers.IO.limitedParallelism(2) + SupervisorJob() +}