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 rework a bit how we manage EGL extensions 2011-11-14 19:05:45 -08:00
tests
Android.mk temporarily hardcode Nexus S refresh rate 2011-11-23 14:51:09 -08:00
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 Fix rotation displays frame N-1 briefly while rotating 2011-11-04 15:15:32 -07:00
LayerScreenshot.h Fix rotation displays frame N-1 briefly while rotating 2011-11-04 15:15:32 -07:00
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 SurfaceTexture: add EGL_KHR_fence_sync option 2011-11-29 17:09:01 -08:00
SurfaceTextureLayer.h
Transform.cpp
Transform.h