summaryrefslogtreecommitdiff
path: root/libs/gui/BufferQueueThreadState.cpp
diff options
context:
space:
mode:
author arthurhung <arthurhung@google.com> 2021-02-08 17:28:49 +0800
committer Arthur Hung <arthurhung@google.com> 2021-04-20 14:32:20 +0800
commitdba591c67923f2c924bd4131725d5554071ea4dc (patch)
tree2800ef4b823acf2d84a984e24ab5ab178dcf3298 /libs/gui/BufferQueueThreadState.cpp
parent7d54b9ca2da6b284c53df8f08a22bd1dc1af37d8 (diff)
SF: non blocking createSurface
The createSurface would add the created layer into current state, which would hold the state lock and may block the binder thread while the main thread is holding the same lock. This CL uses a transaction to perform the behaviors of adding the created layer into current state, so we could return the created layer without holding the lock and do other stuff in the main thread. Also make some test cases to perform a sync transaction after calling createSurface, that could make sure we have done the layer creation. Bug: 179647628 Test: atest libsurfaceflinger_unittest Test: atest SurfaceFlinger_test Test: libgui_test Test: SurfaceControlTest Change-Id: I394b74e9c1cc675df4cacd38ab5da24f0492289d
Diffstat (limited to 'libs/gui/BufferQueueThreadState.cpp')
0 files changed, 0 insertions, 0 deletions