diff options
| -rw-r--r-- | ios/MullvadREST/RESTAccessTokenManager.swift | 5 | ||||
| -rw-r--r-- | ios/MullvadVPN/AddressCacheTracker.swift | 6 | ||||
| -rw-r--r-- | ios/MullvadVPN/AppDelegate.swift | 6 | ||||
| -rw-r--r-- | ios/MullvadVPN/MapViewController.swift | 6 | ||||
| -rw-r--r-- | ios/MullvadVPN/Operations/AlertPresenter.swift | 7 | ||||
| -rw-r--r-- | ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift | 6 | ||||
| -rw-r--r-- | ios/Operations/AsyncOperationQueue.swift | 8 |
7 files changed, 13 insertions, 31 deletions
diff --git a/ios/MullvadREST/RESTAccessTokenManager.swift b/ios/MullvadREST/RESTAccessTokenManager.swift index 92a7f60241..aa072a5e24 100644 --- a/ios/MullvadREST/RESTAccessTokenManager.swift +++ b/ios/MullvadREST/RESTAccessTokenManager.swift @@ -14,15 +14,12 @@ import Operations extension REST { public final class AccessTokenManager { private let logger = Logger(label: "REST.AccessTokenManager") - private let operationQueue = AsyncOperationQueue() + private let operationQueue = AsyncOperationQueue.makeSerial() private let dispatchQueue = DispatchQueue(label: "REST.AccessTokenManager.dispatchQueue") private let proxy: AuthenticationProxy private var tokens = [String: AccessTokenData]() public init(authenticationProxy: AuthenticationProxy) { - operationQueue.name = "REST.AccessTokenManager.operationQueue" - operationQueue.maxConcurrentOperationCount = 1 - operationQueue.underlyingQueue = dispatchQueue proxy = authenticationProxy } diff --git a/ios/MullvadVPN/AddressCacheTracker.swift b/ios/MullvadVPN/AddressCacheTracker.swift index ee19bc1431..7fb0e79826 100644 --- a/ios/MullvadVPN/AddressCacheTracker.swift +++ b/ios/MullvadVPN/AddressCacheTracker.swift @@ -39,11 +39,7 @@ final class AddressCacheTracker { private var timer: DispatchSourceTimer? /// Operation queue. - private let operationQueue: AsyncOperationQueue = { - let operationQueue = AsyncOperationQueue() - operationQueue.maxConcurrentOperationCount = 1 - return operationQueue - }() + private let operationQueue = AsyncOperationQueue.makeSerial() /// Lock used for synchronizing member access. private let nslock = NSLock() diff --git a/ios/MullvadVPN/AppDelegate.swift b/ios/MullvadVPN/AppDelegate.swift index f4307d0f28..945d45d3eb 100644 --- a/ios/MullvadVPN/AppDelegate.swift +++ b/ios/MullvadVPN/AppDelegate.swift @@ -25,11 +25,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD private var simulatorTunnelProviderHost: SimulatorTunnelProviderHost? #endif - private let operationQueue: AsyncOperationQueue = { - let operationQueue = AsyncOperationQueue() - operationQueue.maxConcurrentOperationCount = 1 - return operationQueue - }() + private let operationQueue = AsyncOperationQueue.makeSerial() private(set) var tunnelStore: TunnelStore! private(set) var tunnelManager: TunnelManager! diff --git a/ios/MullvadVPN/MapViewController.swift b/ios/MullvadVPN/MapViewController.swift index ea6988196f..44ba69a22f 100644 --- a/ios/MullvadVPN/MapViewController.swift +++ b/ios/MullvadVPN/MapViewController.swift @@ -16,11 +16,7 @@ private let geoJSONSourceFileName = "countries.geo.json" final class MapViewController: UIViewController, MKMapViewDelegate { private let logger = Logger(label: "MapViewController") - private let animationQueue: AsyncOperationQueue = { - let animationQueue = AsyncOperationQueue() - animationQueue.maxConcurrentOperationCount = 1 - return animationQueue - }() + private let animationQueue = AsyncOperationQueue.makeSerial() private let locationMarker = MKPointAnnotation() private var willChangeRegion = false diff --git a/ios/MullvadVPN/Operations/AlertPresenter.swift b/ios/MullvadVPN/Operations/AlertPresenter.swift index b87d8f9698..bb86989d78 100644 --- a/ios/MullvadVPN/Operations/AlertPresenter.swift +++ b/ios/MullvadVPN/Operations/AlertPresenter.swift @@ -13,12 +13,7 @@ public final class AlertPresenter { static let alertControllerDidDismissNotification = Notification .Name("UIAlertControllerDidDismiss") - private let operationQueue: OperationQueue = { - let operationQueue = AsyncOperationQueue() - operationQueue.name = "AlertPresenterQueue" - operationQueue.maxConcurrentOperationCount = 1 - return operationQueue - }() + private let operationQueue = AsyncOperationQueue.makeSerial() private static let initClass: Void = { /// Swizzle `viewDidDisappear` on `UIAlertController` in order to be able to diff --git a/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift b/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift index ef4bb33733..dedfa1825d 100644 --- a/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift +++ b/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift @@ -32,11 +32,7 @@ final class RelayCacheTracker { private let nslock = NSLock() /// Internal operation queue. - private let operationQueue: OperationQueue = { - let operationQueue = AsyncOperationQueue() - operationQueue.maxConcurrentOperationCount = 1 - return operationQueue - }() + private let operationQueue = AsyncOperationQueue.makeSerial() /// A timer source used for periodic updates. private var timerSource: DispatchSourceTimer? diff --git a/ios/Operations/AsyncOperationQueue.swift b/ios/Operations/AsyncOperationQueue.swift index f454340a45..4579546084 100644 --- a/ios/Operations/AsyncOperationQueue.swift +++ b/ios/Operations/AsyncOperationQueue.swift @@ -8,7 +8,7 @@ import Foundation -public class AsyncOperationQueue: OperationQueue { +public final class AsyncOperationQueue: OperationQueue { override public func addOperation(_ operation: Operation) { if let operation = operation as? AsyncOperation { let categories = operation.conditions @@ -42,6 +42,12 @@ public class AsyncOperationQueue: OperationQueue { } } } + + public static func makeSerial() -> AsyncOperationQueue { + let queue = AsyncOperationQueue() + queue.maxConcurrentOperationCount = 1 + return queue + } } private final class ExclusivityManager { |
