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 SurfaceFlinger: add some layer update tests 2011-10-14 16:11:51 -07:00
Android.mk temporarily hardcode Nexus S refresh rate 2011-11-23 14:51:09 -08:00
Barrier.h
clz.cpp
clz.h implement: "Add an ANativeWindow API for SurfaceFlinger to suggest an optimal buffer orientation" 2011-07-19 15:24:46 -07:00
DdmConnection.cpp as a debug option SrufaceFlinger can now connect to DDMS 2011-08-15 20:44:40 -07:00
DdmConnection.h as a debug option SrufaceFlinger can now connect to DDMS 2011-08-15 20:44:40 -07:00
GLExtensions.cpp add support for [1974164] Be able to take a screen shot on the device 2010-09-24 14:56:39 -07:00
GLExtensions.h add support for [1974164] Be able to take a screen shot on the device 2010-09-24 14:56:39 -07:00
Layer.cpp Fix software GL renderer. 2011-10-21 16:18:48 -07:00
Layer.h SurfaceFlinger: Remove display freezing code 2011-10-14 16:44:08 -07:00
LayerBase.cpp Make sure set GL state properly 2011-10-18 15:32:57 -07:00
LayerBase.h Merge changes Ib302d79e,Ib4ee085f 2011-09-27 14:24:09 -07:00
LayerDim.cpp Make sure set GL state properly 2011-10-18 15:32:57 -07:00
LayerDim.h unify SurfaceTexture and Surface 2011-06-13 15:51:35 -07:00
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 deliver invalidate messages AFTER other messages 2010-10-11 14:11:15 -07:00
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 return correct value from query after connecting a surface 2011-08-08 20:25:44 -07:00
Transform.cpp fix Surface positions are not floats 2011-08-30 18:51:54 -07:00
Transform.h fix Surface positions are not floats 2011-08-30 18:51:54 -07:00