diff options
author | Jesse Hall <jessehall@google.com> | 2011-12-02 10:00:00 -0800 |
---|---|---|
committer | Jesse Hall <jessehall@google.com> | 2011-12-02 10:03:25 -0800 |
commit | 2f4b68d21c1a58cbcb1e6929fb241e425a8f7b5d (patch) | |
tree | 88baac453fb94cf361eef046e2dc2d7525106997 /opengl/tests/gl_basic/gl_basic.cpp | |
parent | afdc18bb0cce605e03f1829f7226a8f793aab618 (diff) |
SurfaceFlinger: fix layer removal race condition
Layer::lockPageFlip() and layer::onRemove() could be called on
different threads and race such that lockPageFlip() successfully
called mSurfaceTexture->updateTexImage() but then gets NULL back from
mSurfaceTexture->getCurrentBuffer(), leading to a crash.
This change moves Layer::onRemove() calls to
SurfaceFlinger::commitTransaction() so they happen after the Layer is
done being drawn from and only happen on the main surfaceflinger
thread.
Change-Id: I4b550caadff4cc1878d7c3bca6129193fb0c713e
Diffstat (limited to 'opengl/tests/gl_basic/gl_basic.cpp')
0 files changed, 0 insertions, 0 deletions