summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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 {
}
}
}
+