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

Commit 74bc43bd authored by Hongguang's avatar Hongguang Committed by Hongguang Chen
Browse files

Notify FilterCallbackScheduler to wake up it while stopping.

Bug: 183057734
Test: atest android.media.tv.tuner.cts
Change-Id: I2b9d45fa7df3f2490893cc24d98c0e0baaaf0c2c
parent bdd39589
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -88,7 +88,11 @@ void FilterCallbackScheduler::start() {
}

void FilterCallbackScheduler::stop() {
    {
        std::unique_lock<std::mutex> lock(mLock);
        mIsRunning = false;
        mCv.notify_all();
    }
    if (mCallbackThread.joinable()) {
        mCallbackThread.join();
    }
@@ -113,6 +117,10 @@ void FilterCallbackScheduler::threadLoopOnce() {
        // okay to send data.
        mCv.wait(lock);
    }
    if (!mIsRunning) {
        lock.unlock();
        return;
    }

    // condition_variable wait locks mutex on timeout / notify
    if (!mCallbackBuffer.empty()) {