diff options
| -rw-r--r-- | ios/MullvadVPN/Operations/AsyncBlockOperation.swift | 8 |
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 { } } } + |
