From 4665f8b74e89dbdab85fe01270731c3f429b0127 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Thu, 3 Nov 2022 17:57:18 +0200 Subject: [PATCH] Add syncronized to PageLoader.tasks (fix crash) --- .../org/koitharu/kotatsu/reader/domain/PageLoader.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/domain/PageLoader.kt b/app/src/main/java/org/koitharu/kotatsu/reader/domain/PageLoader.kt index d32bc4fc4..da3ad43ee 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/domain/PageLoader.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/domain/PageLoader.kt @@ -66,7 +66,9 @@ class PageLoader @Inject constructor( override fun close() { loaderScope.cancel() - tasks.clear() + synchronized(tasks) { + tasks.clear() + } } fun isPrefetchApplicable(): Boolean { @@ -103,7 +105,9 @@ class PageLoader @Inject constructor( return task } task = loadPageAsyncImpl(page) - tasks[page.id] = task + synchronized(tasks) { + tasks[page.id] = task + } return task } @@ -135,7 +139,9 @@ class PageLoader @Inject constructor( while (prefetchQueue.isNotEmpty()) { val page = prefetchQueue.pollFirst() ?: return if (cache[page.url] == null) { - tasks[page.id] = loadPageAsyncImpl(page) + synchronized(tasks) { + tasks[page.id] = loadPageAsyncImpl(page) + } return } }