diff --git a/audio/aidl/vts/AudioHalBinderServiceUtil.h b/audio/aidl/vts/AudioHalBinderServiceUtil.h index 403690ebf7..1a19ae40e8 100644 --- a/audio/aidl/vts/AudioHalBinderServiceUtil.h +++ b/audio/aidl/vts/AudioHalBinderServiceUtil.h @@ -42,20 +42,9 @@ class AudioHalBinderServiceUtil { ndk::SpAIBinder restartService( std::chrono::milliseconds timeoutMs = std::chrono::milliseconds(3000)) { - mDeathHandler.reset(new AidlDeathRecipient(mBinder)); - if (STATUS_OK != mDeathHandler->linkToDeath()) { - LOG(ERROR) << "linkToDeath failed"; - return nullptr; + if (!stopService(timeoutMs)) { + return {}; } - if (!android::base::SetProperty("sys.audio.restart.hal", "1")) { - LOG(ERROR) << "SetProperty failed"; - return nullptr; - } - if (!mDeathHandler->waitForFired(timeoutMs)) { - LOG(ERROR) << "Timeout wait for death"; - return nullptr; - } - mDeathHandler.reset(); return connectToService(mServiceName); } @@ -93,7 +82,23 @@ class AudioHalBinderServiceUtil { } }; + bool stopService(std::chrono::milliseconds timeoutMs) { + AidlDeathRecipient deathHandler(mBinder); + if (STATUS_OK != deathHandler.linkToDeath()) { + LOG(ERROR) << "linkToDeath failed"; + return false; + } + if (!android::base::SetProperty("sys.audio.restart.hal", "1")) { + LOG(ERROR) << "SetProperty failed"; + return false; + } + if (!deathHandler.waitForFired(timeoutMs)) { + LOG(ERROR) << "Timeout wait for death"; + return false; + } + return true; + } + std::string mServiceName; ndk::SpAIBinder mBinder; - std::unique_ptr mDeathHandler; };