diff --git a/MVMCore/MVMCore/Models/ActionType/Client Parameters/ClientParameterHandler.swift b/MVMCore/MVMCore/Models/ActionType/Client Parameters/ClientParameterHandler.swift index d621115..a1544e0 100644 --- a/MVMCore/MVMCore/Models/ActionType/Client Parameters/ClientParameterHandler.swift +++ b/MVMCore/MVMCore/Models/ActionType/Client Parameters/ClientParameterHandler.swift @@ -106,11 +106,12 @@ timingOutIn: timeout) { (receivedParameter) in // Queue the results for merge. self.parametersWorkQueue.async { + let previouslySatisfied = returnedList.allSatisfy { $0 != nil } if (returnedList[index] != nil) { MVMCoreLoggingHandler.shared()?.addError(toLog: MVMCoreErrorObject(title: nil, message: "Client parameter \(parameterType) has already executed. The completion handler should only be called once!", code: ErrorCode.default.rawValue, domain: ErrorDomainNative, location: String(describing: ClientParameterHandler.self))!) } returnedList[index] = receivedParameter - if (returnedList.allSatisfy { $0 != nil }) { + if (!previouslySatisfied && returnedList.allSatisfy { $0 != nil }) { self.group.leave() // Leaving is only done after setup (barriered). } }