diff --git a/src/GraphCtrl/GraphElement/GElement.cpp b/src/GraphCtrl/GraphElement/GElement.cpp index 2880adfd..71b65495 100644 --- a/src/GraphCtrl/GraphElement/GElement.cpp +++ b/src/GraphCtrl/GraphElement/GElement.cpp @@ -14,7 +14,6 @@ CGRAPH_NAMESPACE_BEGIN GElement::~GElement() { - CGRAPH_DELETE_PTR(run_task_) CGRAPH_DELETE_PTR(perf_info_) CGRAPH_DELETE_PTR(aspect_manager_) for (auto& param : local_params_) { diff --git a/src/GraphCtrl/GraphElement/GElement.h b/src/GraphCtrl/GraphElement/GElement.h index f7d64993..5160e78b 100644 --- a/src/GraphCtrl/GraphElement/GElement.h +++ b/src/GraphCtrl/GraphElement/GElement.h @@ -459,7 +459,7 @@ class GElement : public GElementObject, GAspectManagerPtr aspect_manager_ { nullptr }; // 整体流程的切面管理类 UThreadPoolPtr thread_pool_ { nullptr }; // 用于执行的线程池信息 GPerfInfo* perf_info_ { nullptr }; // 用于perf的信息 - UTask* run_task_ { nullptr }; // 用于记录 调度执行函数 + UTask run_task_ {}; // 用于记录 调度执行函数 CBool is_prepared_ { false }; // 判断是否已经执行过 prepareRun() 方法 /** 图相关信息 */ diff --git a/src/GraphCtrl/GraphElement/_GEngine/GDynamicEngine/GDynamicEngine.cpp b/src/GraphCtrl/GraphElement/_GEngine/GDynamicEngine/GDynamicEngine.cpp index c161a5bd..8f8cf1ea 100644 --- a/src/GraphCtrl/GraphElement/_GEngine/GDynamicEngine/GDynamicEngine.cpp +++ b/src/GraphCtrl/GraphElement/_GEngine/GDynamicEngine/GDynamicEngine.cpp @@ -126,8 +126,7 @@ CVoid GDynamicEngine::analysisParallelMatrix() { CVoid GDynamicEngine::makeCommonTask() { for (auto* element : total_element_arr_) { - CGRAPH_DELETE_PTR(element->run_task_) - element->run_task_ = new UTask([this, element] { + element->run_task_ = UTask([this, element] { this->innerExec(element); }); } @@ -143,7 +142,7 @@ CVoid GDynamicEngine::process(GElementPtr element, const CBool affinity) { // 如果 affinity=true,表示用当前的线程,执行这个逻辑。以便增加亲和性 innerExec(element); } else { - thread_pool_->execute(element->run_task_, element->binding_index_); + thread_pool_->execute(&element->run_task_, element->binding_index_); } }