From 98c1a377ca8de69c4c4370d82ad2f8e28a93c26d Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Wed, 10 Jul 2024 20:17:21 +0800 Subject: [PATCH] Fix main thread disk IO --- .../main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt index 1efeb6417..110e59589 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt @@ -540,16 +540,16 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS private fun doLaunchDownloadJob(index: Int, force: Boolean, orgImg: Boolean = false) { val state = mPageStateArray[index] - if (!force) { - if (state == STATE_FINISHED) return - if (index in mSpiderDen) return updatePageState(index, STATE_FINISHED) - } + if (!force && state == STATE_FINISHED) return val currentJob = mFetcherJobMap[index] val skipHath = force && !orgImg && currentJob?.isActive == true if (force) currentJob?.cancel(CancellationException(FORCE_RETRY)) if (currentJob?.isActive != true) { mFetcherJobMap[index] = launch { runCatching { + if (!force && index in mSpiderDen) { + return@runCatching updatePageState(index, STATE_FINISHED) + } delayLock.withLock { delay(mDownloadDelay - lastRequestTime.elapsedNow()) lastRequestTime = TimeSource.Monotonic.markNow()