Fix crashing bug in FetchRequestQueue by making sure the completion is called not more than once from FetchRequestOperation. Fix #1133.

This commit is contained in:
Brent Simmons
2019-10-13 22:08:05 -07:00
parent fcb0f0c439
commit 31a2afb067
2 changed files with 20 additions and 13 deletions

View File

@@ -10,7 +10,7 @@ import Foundation
// Main thread only.
class FetchRequestQueue {
final class FetchRequestQueue {
private var pendingRequests = [FetchRequestOperation]()
private var currentRequest: FetchRequestOperation? = nil
@@ -40,9 +40,8 @@ private extension FetchRequestQueue {
currentRequest = requestToRun
pendingRequests.removeFirst()
requestToRun.run { (fetchRequestOperation) in
currentRequest.run { (fetchRequestOperation) in
precondition(fetchRequestOperation === self.currentRequest)
precondition(fetchRequestOperation === requestToRun)
self.currentRequest = nil
self.runNextRequestIfNeeded()
}