Loading libs/ui/FramebufferNativeWindow.cpp +4 −13 Original line number Original line Diff line number Diff line Loading @@ -237,10 +237,12 @@ int FramebufferNativeWindow::dequeueBuffer(ANativeWindow* window, if (self->mBufferHead >= self->mNumBuffers) if (self->mBufferHead >= self->mNumBuffers) self->mBufferHead = 0; self->mBufferHead = 0; // wait for a free buffer // wait for a free non-front buffer while (!self->mNumFreeBuffers) { while (self->mNumFreeBuffers < 2) { self->mCondition.wait(self->mutex); self->mCondition.wait(self->mutex); } } ALOG_ASSERT(self->buffers[index] != self->front); // get this buffer // get this buffer self->mNumFreeBuffers--; self->mNumFreeBuffers--; self->mCurrentBufferIndex = index; self->mCurrentBufferIndex = index; Loading @@ -254,17 +256,6 @@ int FramebufferNativeWindow::dequeueBuffer(ANativeWindow* window, int FramebufferNativeWindow::lockBuffer_DEPRECATED(ANativeWindow* window, int FramebufferNativeWindow::lockBuffer_DEPRECATED(ANativeWindow* window, ANativeWindowBuffer* buffer) ANativeWindowBuffer* buffer) { { // XXX: Can this code all get ripped out? Should it move to dequeueBuffer? FramebufferNativeWindow* self = getSelf(window); Mutex::Autolock _l(self->mutex); const int index = self->mCurrentBufferIndex; // wait that the buffer we're locking is not front anymore while (self->front == buffer) { self->mCondition.wait(self->mutex); } return NO_ERROR; return NO_ERROR; } } Loading Loading
libs/ui/FramebufferNativeWindow.cpp +4 −13 Original line number Original line Diff line number Diff line Loading @@ -237,10 +237,12 @@ int FramebufferNativeWindow::dequeueBuffer(ANativeWindow* window, if (self->mBufferHead >= self->mNumBuffers) if (self->mBufferHead >= self->mNumBuffers) self->mBufferHead = 0; self->mBufferHead = 0; // wait for a free buffer // wait for a free non-front buffer while (!self->mNumFreeBuffers) { while (self->mNumFreeBuffers < 2) { self->mCondition.wait(self->mutex); self->mCondition.wait(self->mutex); } } ALOG_ASSERT(self->buffers[index] != self->front); // get this buffer // get this buffer self->mNumFreeBuffers--; self->mNumFreeBuffers--; self->mCurrentBufferIndex = index; self->mCurrentBufferIndex = index; Loading @@ -254,17 +256,6 @@ int FramebufferNativeWindow::dequeueBuffer(ANativeWindow* window, int FramebufferNativeWindow::lockBuffer_DEPRECATED(ANativeWindow* window, int FramebufferNativeWindow::lockBuffer_DEPRECATED(ANativeWindow* window, ANativeWindowBuffer* buffer) ANativeWindowBuffer* buffer) { { // XXX: Can this code all get ripped out? Should it move to dequeueBuffer? FramebufferNativeWindow* self = getSelf(window); Mutex::Autolock _l(self->mutex); const int index = self->mCurrentBufferIndex; // wait that the buffer we're locking is not front anymore while (self->front == buffer) { self->mCondition.wait(self->mutex); } return NO_ERROR; return NO_ERROR; } } Loading