Add syncronized to PageLoader.tasks (fix crash)

pull/260/head
Koitharu 4 years ago
parent 5a43e677c5
commit 4665f8b74e
No known key found for this signature in database
GPG Key ID: 8E861F8CE6E7CE27

@ -66,8 +66,10 @@ class PageLoader @Inject constructor(
override fun close() { override fun close() {
loaderScope.cancel() loaderScope.cancel()
synchronized(tasks) {
tasks.clear() tasks.clear()
} }
}
fun isPrefetchApplicable(): Boolean { fun isPrefetchApplicable(): Boolean {
return repository is RemoteMangaRepository && settings.isPagesPreloadAllowed(connectivityManager) return repository is RemoteMangaRepository && settings.isPagesPreloadAllowed(connectivityManager)
@ -103,7 +105,9 @@ class PageLoader @Inject constructor(
return task return task
} }
task = loadPageAsyncImpl(page) task = loadPageAsyncImpl(page)
synchronized(tasks) {
tasks[page.id] = task tasks[page.id] = task
}
return task return task
} }
@ -135,7 +139,9 @@ class PageLoader @Inject constructor(
while (prefetchQueue.isNotEmpty()) { while (prefetchQueue.isNotEmpty()) {
val page = prefetchQueue.pollFirst() ?: return val page = prefetchQueue.pollFirst() ?: return
if (cache[page.url] == null) { if (cache[page.url] == null) {
synchronized(tasks) {
tasks[page.id] = loadPageAsyncImpl(page) tasks[page.id] = loadPageAsyncImpl(page)
}
return return
} }
} }

Loading…
Cancel
Save