replicant-frameworks_native/include/private/surfaceflinger
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
..
LayerState.h split libsurfaceflinger_client and libcamera_client out of libui 2010-02-11 13:16:22 -08:00
SharedBufferStack.h fix a race condition in undoDequeue(), where 'tail' could be computed incorrectly. 2010-04-28 16:12:54 -07:00