From c2c1f2f24cd70bdcf1958157bab38467bf0fdc71 Mon Sep 17 00:00:00 2001 From: Daniel Lam Date: Wed, 7 Mar 2012 14:11:29 -0800 Subject: [PATCH] BufferQueue: fixed issues with buffer slots not available Bug: 6120953 Change-Id: I61d97d650c8dee0a6d7c19f2f50aa92a5f159095 --- libs/gui/BufferQueue.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp index 25a4c227f..513a00e9e 100644 --- a/libs/gui/BufferQueue.cpp +++ b/libs/gui/BufferQueue.cpp @@ -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.