BufferQueue: fixed issues with buffer slots not available
Bug: 6120953 Change-Id: I61d97d650c8dee0a6d7c19f2f50aa92a5f159095
This commit is contained in:
parent
373c2b2869
commit
c2c1f2f24c
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user