Просмотр исходного кода

Avoid stackoverflow in image prefetcher cache

onevcat 8 лет назад
Родитель
Сommit
a2e5b76590
1 измененных файлов с 8 добавлено и 8 удалено
  1. 8 8
      Sources/ImagePrefetcher.swift

+ 8 - 8
Sources/ImagePrefetcher.swift

@@ -204,9 +204,7 @@ public class ImagePrefetcher {
                     self.handleComplete()
                 }
             } else {
-                DispatchQueue.main.async {
-                    self.reportCompletionOrStartNext()
-                }
+                self.reportCompletionOrStartNext()
             }
         }
         
@@ -250,11 +248,13 @@ public class ImagePrefetcher {
     }
     
     func reportCompletionOrStartNext() {
-        if let resource = pendingResources.popFirst() {
-            startPrefetching(resource)
-        } else {
-            guard tasks.isEmpty else { return }
-            handleComplete()
+        DispatchQueue.main.async {
+            if let resource = self.pendingResources.popFirst() {
+                self.startPrefetching(resource)
+            } else {
+                guard self.tasks.isEmpty else { return }
+                self.handleComplete()
+            }
         }
     }