From 7ecff066718ece9abe5105d4d9ebebaef0d2446b Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Wed, 21 Feb 2024 09:33:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/ui/main/MainViewModel.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt index c86abcd5b..9bcdd5a91 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt @@ -38,6 +38,7 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.isActive import kotlinx.coroutines.launch import java.util.LinkedList +import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.Executors import kotlin.math.min @@ -46,7 +47,7 @@ class MainViewModel(application: Application) : BaseViewModel(application) { private var poolSize = min(threadCount, AppConst.MAX_THREAD) private var upTocPool = Executors.newFixedThreadPool(poolSize).asCoroutineDispatcher() private val waitUpTocBooks = LinkedList() - private val onUpTocBooks = hashSetOf() + private val onUpTocBooks = ConcurrentHashMap.newKeySet() val onUpBooksLiveData = MutableLiveData() private var upTocJob: Job? = null private var cacheBookJob: Job? = null @@ -110,10 +111,9 @@ class MainViewModel(application: Application) : BaseViewModel(application) { while (true) { emit(waitUpTocBooks.poll() ?: break) } - }.onEach { + }.onEachParallel(threadCount) { onUpTocBooks.add(it) postEvent(EventBus.UP_BOOKSHELF, it) - }.onEachParallel(threadCount) { updateToc(it) }.onEach { onUpTocBooks.remove(it)