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

Commit 805a0c70 authored by Andy Hung's avatar Andy Hung
Browse files

Fix race condition in AudioRecordThread::wake

Bug: 22533684
Change-Id: Iba73d633b088dbc84159ed692019da39cc8e2233
parent 17d0efd1
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -1235,13 +1235,17 @@ void AudioRecord::AudioRecordThread::resume()
void AudioRecord::AudioRecordThread::wake()
{
    AutoMutex _l(mMyLock);
    if (!mPaused && mPausedInt && mPausedNs > 0) {
        // audio record is active and internally paused with timeout.
    if (!mPaused) {
        // wake() might be called while servicing a callback - ignore the next
        // pause time and call processAudioBuffer.
        mIgnoreNextPausedInt = true;
        if (mPausedInt && mPausedNs > 0) {
            // audio record is active and internally paused with timeout.
            mPausedInt = false;
            mMyCond.signal();
        }
    }
}

void AudioRecord::AudioRecordThread::pauseInternal(nsecs_t ns)
{