replicant-frameworks_native/libs/surfaceflinger_client
Mathias Agopian 0a8cd0689a fix a race condition in undoDequeue(), where 'tail' could be computed incorrectly.
in the undoDequeue() case, 'tail' was recalculated from 'available' and 'head'
however there was a race between this and retireAndLock(), which could cause
'tail' to be recalculated wrongly.

the interesting thing though is that retireAndLock() shouldn't have any impact
on the value of 'tail', which is client-side only attribute.
we fix the race by saving the value of 'tail' before dequeue() and restore it
in the case of undoDequeue(), since we know it doesn't depend on retireAndLock().

Change-Id: I4bcc4d16b6bc4dd93717ee739c603040b18295a0
2010-04-28 16:12:54 -07:00
..
Android.mk
ISurface.cpp
ISurfaceComposer.cpp
ISurfaceFlingerClient.cpp Added a name to Surface created by SurfaceFlinger 2010-03-01 18:34:50 -08:00
LayerState.cpp
SharedBufferStack.cpp fix a race condition in undoDequeue(), where 'tail' could be computed incorrectly. 2010-04-28 16:12:54 -07:00
Surface.cpp better fix for [2420565] Surface.lockCanvas() updates the dirty region too often 2010-04-21 22:25:35 -07:00
SurfaceComposerClient.cpp Added a name to Surface created by SurfaceFlinger 2010-03-01 18:34:50 -08:00