diff --git a/ios/Libraries/VoipService.swift b/ios/Libraries/VoipService.swift index e7bb2a4512c..b1b5e00bbe6 100644 --- a/ios/Libraries/VoipService.swift +++ b/ios/Libraries/VoipService.swift @@ -457,10 +457,10 @@ public final class VoipService: NSObject { cancelIncomingCallTimeout(for: payload.callId) - var finishAcceptInvoked = false + var finishAcceptInvoked = [false] let finishAccept: (Bool) -> Void = { [weak payload] success in - guard !finishAcceptInvoked else { return } - finishAcceptInvoked = true + guard !finishAcceptInvoked[0] else { return } + finishAcceptInvoked[0] = true guard let payload else { return } stopDDPClientInternal(callId: payload.callId) if success { @@ -498,7 +498,7 @@ public final class VoipService: NSObject { // 10-second timeout guard: if REST hasn't completed by then, call finishAccept(false). let timeoutWorkItem = DispatchWorkItem { [weak payload, finishAcceptInvoked] in guard let payload else { return } - guard !finishAcceptInvoked else { return } + guard !finishAcceptInvoked[0] else { return } // Check the callId is still tracked (not already cleaned up). nativeAcceptLock.lock() let isStillTracked = nativeAcceptHandledCallIds.contains(payload.callId)