summaryrefslogtreecommitdiff
path: root/libs/gui/BLASTBufferQueue.cpp
diff options
context:
space:
mode:
author Robert Carr <racarr@google.com> 2022-03-03 08:03:37 -0800
committer Robert Carr <racarr@google.com> 2022-03-08 15:42:09 -0800
commita63d52adb054f860848693d6b2f8a36dae2615c2 (patch)
treea67a1bf2a1f6162898413c1884abf7de6f4ef5fb /libs/gui/BLASTBufferQueue.cpp
parent506d7d39f326646f98f11deb930966c2a4374611 (diff)
SurfaceFlinger: Use a lockless stack for binder->tracing thread
Though the critical section is kept very small between the binder and tracing threads, the tracing thread is not RT, and so we still run the risk of it being descheduled and blocking one of our binder threads excessively. In this thread we provide a simple lockless stack implementation and use it to push pending transactions from the binder thread to the main thread. We also looked up "layer IDs" on the binder thread, which is no longer possible without the lock. To work around this we store the pointer itself in the proto until it reaches the tracing thread where we overwrite it with the mapped value. Bug: 200284593 Test: Existing tests pass Change-Id: I408dc87ddfe088b68f65601455147a96b870627d
Diffstat (limited to 'libs/gui/BLASTBufferQueue.cpp')
0 files changed, 0 insertions, 0 deletions