audio: Change mDeathHandler from a member into a local variable
Since no data is retained in mDeathHandler across member function calls, it should be a local variable instead of a member variable. Change-Id: I58d6cc511a21e0e7f430b3cf528faba072e02ec7 Signed-off-by: Bart Van Assche <bvanassche@google.com>
This commit is contained in:
parent
a76d4d8899
commit
17b3201259
1 changed files with 19 additions and 14 deletions
|
@ -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<AidlDeathRecipient> mDeathHandler;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue