Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6fcb2f8d authored by Bart Van Assche's avatar Bart Van Assche Committed by Automerger Merge Worker
Browse files

audio: Change mDeathHandler from a member into a local variable am: 17b32012

parents fcf3a1b3 17b32012
Loading
Loading
Loading
Loading
+19 −14
Original line number Diff line number Diff line
@@ -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 (!android::base::SetProperty("sys.audio.restart.hal", "1")) {
            LOG(ERROR) << "SetProperty failed";
            return nullptr;
        if (!stopService(timeoutMs)) {
            return {};
        }
        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;
};