diff --git a/MVMCore/MVMCore/Models/ActionType/Client Parameters/ClientParameterRegistry.swift b/MVMCore/MVMCore/Models/ActionType/Client Parameters/ClientParameterRegistry.swift index 3be23bd..6fe5f38 100644 --- a/MVMCore/MVMCore/Models/ActionType/Client Parameters/ClientParameterRegistry.swift +++ b/MVMCore/MVMCore/Models/ActionType/Client Parameters/ClientParameterRegistry.swift @@ -37,10 +37,19 @@ import Foundation DispatchQueue.global(qos: .userInitiated).async { - let timeout = clientParameters.optionalCGFloatForKey("timeout") ?? 60.0 + let timeout = clientParameters.optionalCGFloatForKey("timeout") ?? 30.0 let concurrentQueue = DispatchQueue(label: "com.mva.clientparam", attributes: .concurrent) let group = DispatchGroup() + + + let completionItem = DispatchWorkItem { + completionHandler(paramsList); + } + + let dispatchAfterTime = DispatchTimeInterval.seconds(Int(timeout)) + concurrentQueue.asyncAfter(deadline: .now() + dispatchAfterTime, execute: completionItem) + for param in paramsModelList { group.enter() @@ -55,11 +64,7 @@ import Foundation } } } - - let dispatchAfterTime = DispatchTimeInterval.seconds(Int(timeout)) - _ = group.wait(timeout: .now() + dispatchAfterTime) - - completionHandler(paramsList) + group.notify(queue: concurrentQueue, work: completionItem); } }