void SurfaceFlinger::commitTransaction() {
ATRACE_CALL();
commitTransactionLocked();
signalSynchronousTransactions(CountDownLatch::eSyncTransaction);
mAnimTransactionPending = false;
}
mCurrentState
设置给 mDrawingState
。commitTransactionLocked()
之前没加锁?在 handleTransaction()
加锁调用了 handleTransactionLock()
,handleTransactionLock()
中调用了 commitTransaction()
。eSyncTransaction
信号。它是在 SurfaceFlinger::flushTransactionQueues() 把 CountDownLatch 加入到 mTransactionCommittedSignals
,在 SurfaceFlinger::setTransactionState() 等待。