diff options
| author | 2011-12-02 10:00:00 -0800 | |
|---|---|---|
| committer | 2011-12-02 10:03:25 -0800 | |
| commit | 2f4b68d21c1a58cbcb1e6929fb241e425a8f7b5d (patch) | |
| tree | 88baac453fb94cf361eef046e2dc2d7525106997 /libs/gui/DisplayEventReceiver.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 'libs/gui/DisplayEventReceiver.cpp')
0 files changed, 0 insertions, 0 deletions