diff options
| author | 2011-12-02 10:00:00 -0800 | |
|---|---|---|
| committer | 2011-12-02 10:03:25 -0800 | |
| commit | 8a7c940effda8651e205eab62334d4e58b1eaeb5 (patch) | |
| tree | 192aef7ba926c8a4215f95e37d5e3d5579aab3b4 /libs/hwui/OpenGLRenderer.cpp | |
| 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 'libs/hwui/OpenGLRenderer.cpp')
0 files changed, 0 insertions, 0 deletions