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

Commit 64da107e authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "CCodecWatchdog: never destruct once constructed" into main am: d0e31898

parents 98cfb7ec d0e31898
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -96,11 +96,14 @@ private:

public:
    static sp<CCodecWatchdog> getInstance() {
        static sp<CCodecWatchdog> instance(new CCodecWatchdog);
        static std::once_flag flag;
        // Call Init() only once.
        std::call_once(flag, Init, instance);
        static sp<CCodecWatchdog> sInstance = [] {
            sp<CCodecWatchdog> instance = new CCodecWatchdog;
            // the instance should never get destructed
            instance->incStrong((void *)CCodecWatchdog::getInstance);
            instance->init();
            return instance;
        }();
        return sInstance;
    }

    ~CCodecWatchdog() = default;
@@ -146,11 +149,11 @@ protected:
private:
    CCodecWatchdog() : mLooper(new ALooper) {}

    static void Init(const sp<CCodecWatchdog> &thiz) {
        ALOGV("Init");
        thiz->mLooper->setName("CCodecWatchdog");
        thiz->mLooper->registerHandler(thiz);
        thiz->mLooper->start();
    void init() {
        ALOGV("init");
        mLooper->setName("CCodecWatchdog");
        mLooper->registerHandler(this);
        mLooper->start();
    }

    sp<ALooper> mLooper;