diff --git a/GAutomatorSdk/UnrealEngine/GAutomatorSdk/Plugins/GAutomator/Source/GAutomator/Private/Dispatcher/CommandDispatcher.cpp b/GAutomatorSdk/UnrealEngine/GAutomatorSdk/Plugins/GAutomator/Source/GAutomator/Private/Dispatcher/CommandDispatcher.cpp index 3d3e481..b9a74e8 100644 --- a/GAutomatorSdk/UnrealEngine/GAutomatorSdk/Plugins/GAutomator/Source/GAutomator/Private/Dispatcher/CommandDispatcher.cpp +++ b/GAutomatorSdk/UnrealEngine/GAutomatorSdk/Plugins/GAutomator/Source/GAutomator/Private/Dispatcher/CommandDispatcher.cpp @@ -335,26 +335,16 @@ namespace WeTestU3DAutomation { FCommandHandler CommandHandler(InValue); - std::mutex m; - std::condition_variable* cond_var= FCommandHandler::cond_var; + FScopedEvent FinishedEvent; + AsyncTask(ENamedThreads::GameThread, [&CommandHandler, &OutResponse, &FinishedEvent]() { - AsyncTask(ENamedThreads::GameThread, [&CommandHandler,&OutResponse,&m,cond_var]() { - - std::unique_lock lock(m); OutResponse =CommandHandler.HandleCommand(); UE_LOG(GALog, Log, TEXT("Response body : %s"), *OutResponse); - if(FCommandHandler::flag==0) - cond_var->notify_one(); + FinishedEvent.Trigger(); }); - std::unique_lock lock(m); - cond_var->wait(lock); - if (FCommandHandler::flag != 0) - { - OutResponse = CommandHandler.GetResponse(); - FCommandHandler::flag = 0; - } + return true; } @@ -392,4 +382,4 @@ namespace WeTestU3DAutomation std::condition_variable* FCommandHandler::cond_var = new std::condition_variable(); int FCommandHandler::flag = 0; -} \ No newline at end of file +}