diff --git a/services/distributedhardwarefwkservice/src/utils/dh_timer.cpp b/services/distributedhardwarefwkservice/src/utils/dh_timer.cpp index 46adcd286c9aaa5404348e0a4a013104bd11a934..8108804d26dc51a055dbe214cd756738d4477ca9 100644 --- a/services/distributedhardwarefwkservice/src/utils/dh_timer.cpp +++ b/services/distributedhardwarefwkservice/src/utils/dh_timer.cpp @@ -48,7 +48,17 @@ void DHTimer::InitTimer() void DHTimer::ReleaseTimer() { DHLOGI("start"); - StopTimer(); + std::lock_guard lock(timerMutex_); + if (eventHandler_ != nullptr) { + eventHandler_->RemoveTask(timerId_); + if (eventHandler_->GetEventRunner() != nullptr) { + eventHandler_->GetEventRunner()->Stop(); + } + } + if (eventHandlerThread_.joinable()) { + eventHandlerThread_.join(); + } + eventHandler_ = nullptr; DHLOGI("end"); } @@ -85,17 +95,7 @@ void DHTimer::StartTimer() void DHTimer::StopTimer() { DHLOGI("start"); - std::lock_guard lock(timerMutex_); - if (eventHandler_ != nullptr) { - eventHandler_->RemoveTask(timerId_); - if (eventHandler_->GetEventRunner() != nullptr) { - eventHandler_->GetEventRunner()->Stop(); - } - } - if (eventHandlerThread_.joinable()) { - eventHandlerThread_.join(); - } - eventHandler_ = nullptr; + ReleaseTimer(); HandleStopTimer(); DHLOGI("end"); }