diff --git a/services/distributedhardwarefwkservice/src/task/disable_task.cpp b/services/distributedhardwarefwkservice/src/task/disable_task.cpp index d87664d5dbd05440055f0b2931cc344561080be5..483ad696e11ca01f76a0de93d9743a1b659da8ee 100644 --- a/services/distributedhardwarefwkservice/src/task/disable_task.cpp +++ b/services/distributedhardwarefwkservice/src/task/disable_task.cpp @@ -73,15 +73,14 @@ void DisableTask::DoTaskInner() auto state = (result == DH_FWK_SUCCESS) ? TaskState::SUCCESS : TaskState::FAIL; SetTaskState(state); - DHLOGD("finish disable task, remove it, id = %{public}s", GetId().c_str()); - std::string taskId = GetId(); - TaskBoard::GetInstance().RemoveTask(taskId); /* if finish task, notify father finish */ std::shared_ptr father = GetFatherTask().lock(); if (father != nullptr) { auto offLineTask = std::static_pointer_cast(father); - offLineTask->NotifyFatherFinish(taskId); + offLineTask->NotifyFatherFinish(GetId()); } + DHLOGD("finish disable task, remove it, id = %{public}s", GetId().c_str()); + TaskBoard::GetInstance().RemoveTask(GetId()); } int32_t DisableTask::UnRegisterHardware() diff --git a/services/distributedhardwarefwkservice/src/task/meta_disable_task.cpp b/services/distributedhardwarefwkservice/src/task/meta_disable_task.cpp index 28bf917a9ab9b53d4c9689c94d5c3a2d33dbb8ff..95d7c218909cbc1f96c233bb12bec1b3f26dc996 100644 --- a/services/distributedhardwarefwkservice/src/task/meta_disable_task.cpp +++ b/services/distributedhardwarefwkservice/src/task/meta_disable_task.cpp @@ -64,16 +64,14 @@ void MetaDisableTask::DoTaskInner() auto result = Disable(); auto state = (result == DH_FWK_SUCCESS) ? TaskState::SUCCESS : TaskState::FAIL; SetTaskState(state); - - DHLOGD("finish meta disable task, remove it, id = %{public}s", GetId().c_str()); - std::string taskId = GetId(); - TaskBoard::GetInstance().RemoveTask(taskId); /* if finish task, notify father finish */ std::shared_ptr father = GetFatherTask().lock(); if (father != nullptr) { auto offLineTask = std::static_pointer_cast(father); - offLineTask->NotifyFatherFinish(taskId); + offLineTask->NotifyFatherFinish(GetId()); } + DHLOGD("finish meta disable task, remove it, id = %{public}s", GetId().c_str()); + TaskBoard::GetInstance().RemoveTask(GetId()); } int32_t MetaDisableTask::Disable()