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

Commit c930cf3c authored by Daniel Lam's avatar Daniel Lam
Browse files

BufferQueue: fixed issues with buffer slots not available

Bug: 6120953
Change-Id: Ief43f042ee9e1512e86fff8632a1c9dd31bdff35
parent 75d022af
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -370,18 +370,13 @@ status_t BufferQueue::dequeueBuffer(int *outBuf, uint32_t w, uint32_t h,
                }
            }

            // we're in synchronous mode and didn't find a buffer, we need to
            // wait for some buffers to be consumed
            tryAgain = mSynchronousMode && (foundSync == INVALID_BUFFER_SLOT);
            // if no buffer is found, wait for a buffer to be released
            tryAgain = found == INVALID_BUFFER_SLOT;
            if (tryAgain) {
                mDequeueCondition.wait(mMutex);
            }
        }

        if (mSynchronousMode && found == INVALID_BUFFER_SLOT) {
            // foundSync guaranteed to be != INVALID_BUFFER_SLOT
            found = foundSync;
        }

        if (found == INVALID_BUFFER_SLOT) {
            // This should not happen.