diff options
| author | 2012-10-01 14:05:20 -0700 | |
|---|---|---|
| committer | 2012-10-02 16:29:46 -0700 | |
| commit | ba607d53c6a94ea8c4c12571980c4ad159af308b (patch) | |
| tree | 80458eab2d99780520b25b83b5c09ea13461387c /libs/gui/SurfaceTextureClient.cpp | |
| parent | 2ae7bec77093744206080dbae020edfa3bfac2e1 (diff) | |
Add Fence::waitForever which logs a warning timeout, and use it
Bug: 7217641
Change-Id: If0c1a613ead307c4045a47824174bf40c72bc7d7
Diffstat (limited to 'libs/gui/SurfaceTextureClient.cpp')
| -rw-r--r-- | libs/gui/SurfaceTextureClient.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/libs/gui/SurfaceTextureClient.cpp b/libs/gui/SurfaceTextureClient.cpp index 18a0c104d3..afdbf04a98 100644 --- a/libs/gui/SurfaceTextureClient.cpp +++ b/libs/gui/SurfaceTextureClient.cpp @@ -129,15 +129,18 @@ int SurfaceTextureClient::hook_queueBuffer(ANativeWindow* window, int SurfaceTextureClient::hook_dequeueBuffer_DEPRECATED(ANativeWindow* window, ANativeWindowBuffer** buffer) { SurfaceTextureClient* c = getSelf(window); + ANativeWindowBuffer* buf; int fenceFd = -1; - int result = c->dequeueBuffer(buffer, &fenceFd); + int result = c->dequeueBuffer(&buf, &fenceFd); sp<Fence> fence(new Fence(fenceFd)); - int waitResult = fence->wait(Fence::TIMEOUT_NEVER); + int waitResult = fence->waitForever(1000, "dequeueBuffer_DEPRECATED"); if (waitResult != OK) { - ALOGE("hook_dequeueBuffer_DEPRECATED: Fence::wait returned an " - "error: %d", waitResult); + ALOGE("dequeueBuffer_DEPRECATED: Fence::wait returned an error: %d", + waitResult); + c->cancelBuffer(buf, -1); return waitResult; } + *buffer = buf; return result; } @@ -751,7 +754,7 @@ status_t SurfaceTextureClient::lock( sp<GraphicBuffer> backBuffer(GraphicBuffer::getSelf(out)); sp<Fence> fence(new Fence(fenceFd)); - err = fence->wait(Fence::TIMEOUT_NEVER); + err = fence->waitForever(1000, "SurfaceTextureClient::lock"); if (err != OK) { ALOGE("Fence::wait failed (%s)", strerror(-err)); cancelBuffer(out, fenceFd); |