Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c5196d3b authored by Rob Carr's avatar Rob Carr Committed by Automerger Merge Worker
Browse files

Merge "SurfaceFlinger: Only block calling thread on sync transactions." into rvc-dev am: 1b8793a6

Change-Id: Iab2db147c3fe6de3e437b2868d2b05d248f0b379
parents f952e14c 1b8793a6
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -3420,18 +3420,26 @@ void SurfaceFlinger::applyTransactionState(
                                                  : Scheduler::TransactionStart::NORMAL;
        setTransactionFlags(transactionFlags, start);

        if (flags & eAnimation) {
            mAnimTransactionPending = true;
        }

        // if this is a synchronous transaction, wait for it to take effect
        // before returning.
        if (flags & eSynchronous) {
            mTransactionPending = true;
        const bool synchronous = flags & eSynchronous;
        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;
        }


        // applyTransactionState can be called by either the main SF thread or by
        // another process through setTransactionState.  While a given process may wish
        // to wait on synchronous transactions, the main SF thread should never