Introduce SurfaceFlinger Queued Transaction
Implements the transaction queue to store the transaction updated from 'setTransactionState', and apply these queued transactions in 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 Bug: 166236811 Change-Id: Iab78a6d1e554d28eb4ffc5df860263ecb9091749
Loading
Please register or sign in to comment