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 | 8a7c940effda8651e205eab62334d4e58b1eaeb5 (patch) | |
tree | 192aef7ba926c8a4215f95e37d5e3d5579aab3b4 /opengl/java/android/opengl/Texture.java | |
parent | 335c4e6cb2094c7cbd6039e0c7915702b69e7657 (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/java/android/opengl/Texture.java')
0 files changed, 0 insertions, 0 deletions