diff --git a/services/appmgr/include/app_mgr_service_inner.h b/services/appmgr/include/app_mgr_service_inner.h index 96f732eaacc0447f58f899880ee83af65b1cf583..3678af8f1d88ebbec83532da5daa0d91fbb86031 100644 --- a/services/appmgr/include/app_mgr_service_inner.h +++ b/services/appmgr/include/app_mgr_service_inner.h @@ -687,13 +687,13 @@ private: bool process_exist(pid_t &pid); /** - * CheckALLProcessExist, Determine whether all processes exist . + * CheckAllProcessExist, Determine whether all processes exist . * * @param pids, process number collection to exit. * * @return true, Returns that a process exists and all other processes do not exist. */ - bool CheckALLProcessExist(std::list &pids); + bool CheckAllProcessExist(std::list &pids); /** * SystemTimeMillis, Get system time. diff --git a/services/appmgr/src/app_mgr_service_inner.cpp b/services/appmgr/src/app_mgr_service_inner.cpp index 34694c63d3a142afdb07defc15bacfa46189b593..ac113bf2088d19d0a3851bfba8f06b3e56103ea8 100644 --- a/services/appmgr/src/app_mgr_service_inner.cpp +++ b/services/appmgr/src/app_mgr_service_inner.cpp @@ -454,7 +454,7 @@ bool AppMgrServiceInner::WaitForRemoteProcessExit(std::list &pids, const { int64_t delayTime = SystemTimeMillis() - startTime; while (delayTime < KILL_PROCESS_TIMEOUT_MICRO_SECONDS) { - if (CheckALLProcessExist(pids)) { + if (CheckAllProcessExist(pids)) { return true; } usleep(KILL_PROCESS_DELAYTIME_MICRO_SECONDS); @@ -493,18 +493,18 @@ bool AppMgrServiceInner::process_exist(pid_t &pid) return false; } -bool AppMgrServiceInner::CheckALLProcessExist(std::list &pids) +bool AppMgrServiceInner::CheckAllProcessExist(std::list &pids) { for (auto iter = pids.begin(); iter != pids.end(); ) { - if (!process_exist(*iter) && pids.size() != 0) { - pids.erase(iter); - if (pids.empty()) { - return true; - } + if (!process_exist(*iter)) { + iter = pids.erase(iter); } else { iter++; } } + if (pids.empty()) { + return true; + } return false; }