diff options
author | Robert Carr <racarr@google.com> | 2021-05-05 17:36:47 -0700 |
---|---|---|
committer | Rob Carr <racarr@google.com> | 2021-05-07 18:53:00 +0000 |
commit | e9ea91f47d14920a0a39f1d2cd6e63da7cc2b5d9 (patch) | |
tree | 55773de61b4ee179e83d76181f90b8f1fd4da0b7 /tools/aapt2/java/JavaClassGenerator_test.cpp | |
parent | 0e4d7f142b781bb6721c574592ba62a062bad183 (diff) |
SyncRtSurfaceTransactionApplier: Improve thread safety
If the calling thread releases the SurfaceControl passed
to SyncRtSurfaceTransactionApplier concurrently with the
applier preparing the transaction, this can lead to a
synchronization error and a crash. Once the state is
inside the transaction no further synchronization is required
as the native transaction will hold its own sp<SurfaceControl>
reference. By constructing the Transaction on the calling thread
and deferring application to the RenderThread we enable the calling
thread to not have any release synchronization requirements with
RenderThread.
Bug: 186391509
Change-Id: I585e1a9d3baf9ea384b00408b6253f34487d5037
Diffstat (limited to 'tools/aapt2/java/JavaClassGenerator_test.cpp')
0 files changed, 0 insertions, 0 deletions