summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2023-01-12 12:48:18 +0100
committerAndrej Mihajlov <and@mullvad.net>2023-01-17 10:38:30 +0100
commit64e254bad6becaf30cd53ec24fb9984942b9bcfa (patch)
tree6507caa21f74a386b5319dd81fdfea072aed4f0a
parentf9defadab69084965dcc9c4f9fd194dde250cce4 (diff)
downloadmullvadvpn-64e254bad6becaf30cd53ec24fb9984942b9bcfa.tar.xz
mullvadvpn-64e254bad6becaf30cd53ec24fb9984942b9bcfa.zip
Add helper to create serial operation queue
-rw-r--r--ios/MullvadREST/RESTAccessTokenManager.swift5
-rw-r--r--ios/MullvadVPN/AddressCacheTracker.swift6
-rw-r--r--ios/MullvadVPN/AppDelegate.swift6
-rw-r--r--ios/MullvadVPN/MapViewController.swift6
-rw-r--r--ios/MullvadVPN/Operations/AlertPresenter.swift7
-rw-r--r--ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift6
-rw-r--r--ios/Operations/AsyncOperationQueue.swift8
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 {