diff --git a/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift b/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift index f5113dc..419434a 100644 --- a/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift +++ b/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift @@ -111,7 +111,11 @@ extension JSContext { } } Logger.shared.log("Redirect value is \(redirect.boolValue)", type: "Error") - let task = URLSession.fetchData(allowRedirects: redirect.boolValue).downloadTask(with: request) { tempFileURL, response, error in + let session = URLSession.fetchData(allowRedirects: redirect.boolValue) + + let task = session.downloadTask(with: request) { tempFileURL, response, error in + defer { session.finishTasksAndInvalidate() } + let callReject: (String) -> Void = { message in DispatchQueue.main.async { reject.call(withArguments: [message]) diff --git a/Sora/Utils/Extensions/URLSession.swift b/Sora/Utils/Extensions/URLSession.swift index b712ec1..629117a 100644 --- a/Sora/Utils/Extensions/URLSession.swift +++ b/Sora/Utils/Extensions/URLSession.swift @@ -9,9 +9,12 @@ import Foundation class FetchDelegate: NSObject, URLSessionTaskDelegate { private let allowRedirects: Bool + init(allowRedirects: Bool) { self.allowRedirects = allowRedirects } + deinit { Logger.shared.log("FetchDelegate deallocated", type: "Debug") + } func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) { if(allowRedirects) {