Simplify change.

This commit is contained in:
Kyle Matthew Hedden 2022-04-28 09:44:46 -04:00
parent c21858c48c
commit a05da2695b

View File

@ -89,29 +89,21 @@
} }
} }
guard self.parameterHandlerList.count > 0 else {
completionHandler(nil)
return
}
// Setup timeout. // Setup timeout.
self.parametersWorkQueue.asyncAfter(deadline: .now() + .seconds(Int(timeout)), execute: timeoutWorkItem) self.parametersWorkQueue.asyncAfter(deadline: .now() + .seconds(Int(timeout)), execute: timeoutWorkItem)
self.group.enter()
// Setup the parameter execution. // Setup the parameter execution.
for (index, parameterHandler) in self.parameterHandlerList.enumerated() { for (index, parameterHandler) in self.parameterHandlerList.enumerated() {
let parameterType = parameterHandler.clientParameterModel.type let parameterType = parameterHandler.clientParameterModel.type
self.group.enter()
parameterHandler.fetchClientParameters(requestParameters: requestParameters, parameterHandler.fetchClientParameters(requestParameters: requestParameters,
timingOutIn: timeout) { (receivedParameter) in timingOutIn: timeout) { (receivedParameter) in
// Queue the results for merge. // Queue the results for merge.
self.parametersWorkQueue.async { self.parametersWorkQueue.async {
let previouslySatisfied = returnedList.allSatisfy { $0 != nil }
if (returnedList[index] != 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))!) 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))!)
} } else {
returnedList[index] = receivedParameter returnedList[index] = receivedParameter
if (!previouslySatisfied && returnedList.allSatisfy { $0 != nil }) {
self.group.leave() // Leaving is only done after setup (barriered). self.group.leave() // Leaving is only done after setup (barriered).
} }
} }