replicant-frameworks_native/services/surfaceflinger
Jesse Hall 2f4b68d21c 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
2011-12-02 10:03:25 -08:00
..
DisplayHardware
tests
Android.mk
Barrier.h
clz.cpp
clz.h
DdmConnection.cpp
DdmConnection.h
GLExtensions.cpp
GLExtensions.h
Layer.cpp
Layer.h
LayerBase.cpp
LayerBase.h
LayerDim.cpp
LayerDim.h
LayerScreenshot.cpp
LayerScreenshot.h
MessageQueue.cpp
MessageQueue.h
MODULE_LICENSE_APACHE2
SurfaceFlinger.cpp SurfaceFlinger: fix layer removal race condition 2011-12-02 10:03:25 -08:00
SurfaceFlinger.h SurfaceFlinger: fix layer removal race condition 2011-12-02 10:03:25 -08:00
SurfaceTextureLayer.cpp
SurfaceTextureLayer.h
Transform.cpp
Transform.h