summaryrefslogtreecommitdiff
path: root/libs/gui/BLASTBufferQueue.cpp
diff options
context:
space:
mode:
author Arthur Hung <arthurhung@google.com> 2021-01-16 03:43:53 +0000
committer arthurhung <arthurhung@google.com> 2021-02-02 17:08:38 +0800
commit58144273809dc92c36f901190cc825e1739de2bd (patch)
treee17fba8044bf7580c00def3df954a33196ba9390 /libs/gui/BLASTBufferQueue.cpp
parentca5d8908341cdd58936ba179d5e64d98c4db9b92 (diff)
Introduce SurfaceFlinger Queued Transaction
Implements the transaction queue to store the transaction updated from 'setTransactionState', and apply these queued transactions in the main thread. That would prevent holding the state lock between binder thread and main thread. - The setTransactionState won't call 'applyTransactionState' directly. - The queue is protected by queue lock, apply/get states will still be protected by state lock. - drain and apply transaction queue should be triggered in main thread. - Sync transaction will wait after the condition broadcast, protected by stack lock. Test: atest libsurfaceflinger_unittest SurfaceFlinger_test libgui_test Test: atest SurfaceControlTest UiAutomationTest Test: manual, rotate behavior, seamless rotation, wm-smoke Bug: 166236811 Bug: 177355824 Change-Id: Ie54a9cc6cdf514df613fba0dff95f6752d1134e2
Diffstat (limited to 'libs/gui/BLASTBufferQueue.cpp')
0 files changed, 0 insertions, 0 deletions