mirror of
https://github.com/ninxsoft/Mist.git
synced 2024-09-20 07:49:40 -04:00
Prevent downloads from looping
This commit is contained in:
parent
221944016e
commit
4971121391
1 changed files with 6 additions and 1 deletions
|
@ -26,12 +26,14 @@ class DownloadManager: NSObject, ObservableObject {
|
|||
var mistError: MistError?
|
||||
var urlError: URLError?
|
||||
var retries: Int = 0
|
||||
var completed: Bool = false
|
||||
let completionHandler: (URL?, URLResponse?, Error?) -> Void = { url, _, error in
|
||||
|
||||
if let error: URLError = error as? URLError {
|
||||
|
||||
guard error.code != .cancelled else {
|
||||
mistError = .userCancelled
|
||||
completed = true
|
||||
semaphore.signal()
|
||||
return
|
||||
}
|
||||
|
@ -43,12 +45,14 @@ class DownloadManager: NSObject, ObservableObject {
|
|||
|
||||
if let error: Error = error {
|
||||
mistError = MistError.generalError(error.localizedDescription)
|
||||
completed = true
|
||||
semaphore.signal()
|
||||
return
|
||||
}
|
||||
|
||||
guard let url: URL = url else {
|
||||
mistError = MistError.invalidDestinationURL
|
||||
completed = true
|
||||
semaphore.signal()
|
||||
return
|
||||
}
|
||||
|
@ -63,10 +67,11 @@ class DownloadManager: NSObject, ObservableObject {
|
|||
mistError = MistError.generalError(error.localizedDescription)
|
||||
}
|
||||
|
||||
completed = true
|
||||
semaphore.signal()
|
||||
}
|
||||
|
||||
while mistError == nil {
|
||||
while !completed {
|
||||
|
||||
guard retries < retriesMaximum else {
|
||||
throw MistError.maximumRetriesReached
|
||||
|
|
Loading…
Reference in a new issue