ソースを参照

Don't crash on timeout in renewCache() (#8986)

Fixes #8962.

withTimeout throws a TimeoutCancellationException if the timeout
expires. To avoid crashing renewalJob when there are no extensions,
use withTimeoutOrNull which does not throw on timeout.
Two-Ai 2 年 前
コミット
3a82b4d924

+ 2 - 2
app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt

@@ -28,7 +28,7 @@ import kotlinx.coroutines.flow.onStart
 import kotlinx.coroutines.flow.receiveAsFlow
 import kotlinx.coroutines.flow.shareIn
 import kotlinx.coroutines.flow.stateIn
-import kotlinx.coroutines.withTimeout
+import kotlinx.coroutines.withTimeoutOrNull
 import logcat.LogPriority
 import tachiyomi.domain.chapter.model.Chapter
 import tachiyomi.domain.manga.model.Manga
@@ -276,7 +276,7 @@ class DownloadCache(
             var sources = getSources()
 
             // Try to wait until extensions and sources have loaded
-            withTimeout(30.seconds) {
+            withTimeoutOrNull(30.seconds) {
                 while (!extensionManager.isInitialized) {
                     delay(2.seconds)
                 }