further safety

This commit is contained in:
Kyle Matthew Hedden 2022-04-25 18:32:11 -04:00
parent e19ed416bb
commit c21858c48c

View File

@ -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).
}
}