summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2022-04-20 12:07:33 +0200
committerAndrej Mihajlov <and@mullvad.net>2022-04-29 10:30:25 +0200
commita4d63156fddf7f79570a435deb5d129ec8956f77 (patch)
tree9f76e4e6b6eba7f0041be84584e49a7c0ffe65e8
parentf658aa645b816f31a98590638899a86467f2a8b7 (diff)
downloadmullvadvpn-a4d63156fddf7f79570a435deb5d129ec8956f77.tar.xz
mullvadvpn-a4d63156fddf7f79570a435deb5d129ec8956f77.zip
AsyncBlockOperation: reset execution block in finish()
-rw-r--r--ios/MullvadVPN/Operations/AsyncBlockOperation.swift8
1 files changed, 7 insertions, 1 deletions
diff --git a/ios/MullvadVPN/Operations/AsyncBlockOperation.swift b/ios/MullvadVPN/Operations/AsyncBlockOperation.swift
index 66a6d2aa0b..d88e5a5ec7 100644
--- a/ios/MullvadVPN/Operations/AsyncBlockOperation.swift
+++ b/ios/MullvadVPN/Operations/AsyncBlockOperation.swift
@@ -20,13 +20,18 @@ class AsyncBlockOperation: AsyncOperation {
}
override func main() {
- executionBlock?(self)
+ stateLock.lock()
+ let block = executionBlock
executionBlock = nil
+ stateLock.unlock()
+
+ block?(self)
}
override func finish() {
stateLock.lock()
cancellationBlocks.removeAll()
+ executionBlock = nil
stateLock.unlock()
super.finish()
@@ -56,3 +61,4 @@ class AsyncBlockOperation: AsyncOperation {
}
}
}
+