Loading services/surfaceflinger/SurfaceFlinger.cpp +13 −5 Original line number Original line Diff line number Diff line Loading @@ -3420,18 +3420,26 @@ void SurfaceFlinger::applyTransactionState( : Scheduler::TransactionStart::NORMAL; : Scheduler::TransactionStart::NORMAL; setTransactionFlags(transactionFlags, start); setTransactionFlags(transactionFlags, start); if (flags & eAnimation) { mAnimTransactionPending = true; } // if this is a synchronous transaction, wait for it to take effect // if this is a synchronous transaction, wait for it to take effect // before returning. // before returning. if (flags & eSynchronous) { const bool synchronous = flags & eSynchronous; mTransactionPending = true; const bool syncInput = inputWindowCommands.syncInputWindows; if (!synchronous && !syncInput) { return; } } if (flags & eAnimation) { mAnimTransactionPending = true; if (synchronous) { mTransactionPending = true; } } if (mPendingInputWindowCommands.syncInputWindows) { if (syncInput) { mPendingSyncInputWindows = true; mPendingSyncInputWindows = true; } } // applyTransactionState can be called by either the main SF thread or by // applyTransactionState can be called by either the main SF thread or by // another process through setTransactionState. While a given process may wish // another process through setTransactionState. While a given process may wish // to wait on synchronous transactions, the main SF thread should never // to wait on synchronous transactions, the main SF thread should never Loading Loading
services/surfaceflinger/SurfaceFlinger.cpp +13 −5 Original line number Original line Diff line number Diff line Loading @@ -3420,18 +3420,26 @@ void SurfaceFlinger::applyTransactionState( : Scheduler::TransactionStart::NORMAL; : Scheduler::TransactionStart::NORMAL; setTransactionFlags(transactionFlags, start); setTransactionFlags(transactionFlags, start); if (flags & eAnimation) { mAnimTransactionPending = true; } // if this is a synchronous transaction, wait for it to take effect // if this is a synchronous transaction, wait for it to take effect // before returning. // before returning. if (flags & eSynchronous) { const bool synchronous = flags & eSynchronous; mTransactionPending = true; const bool syncInput = inputWindowCommands.syncInputWindows; if (!synchronous && !syncInput) { return; } } if (flags & eAnimation) { mAnimTransactionPending = true; if (synchronous) { mTransactionPending = true; } } if (mPendingInputWindowCommands.syncInputWindows) { if (syncInput) { mPendingSyncInputWindows = true; mPendingSyncInputWindows = true; } } // applyTransactionState can be called by either the main SF thread or by // applyTransactionState can be called by either the main SF thread or by // another process through setTransactionState. While a given process may wish // another process through setTransactionState. While a given process may wish // to wait on synchronous transactions, the main SF thread should never // to wait on synchronous transactions, the main SF thread should never Loading