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

Commit 7a339ca8 authored by Tiger Huang's avatar Tiger Huang Committed by Android (Google) Code Review
Browse files

Merge "Call InputEventReceiver.dispose from the right thread"

parents 1c1d1c0f ced251f3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.util.SparseIntArray;

import dalvik.system.CloseGuard;

import java.lang.ref.Reference;
import java.lang.ref.WeakReference;

/**
@@ -86,6 +87,7 @@ public abstract class InputEventReceiver {

    /**
     * Disposes the receiver.
     * Must be called on the same Looper thread to which the receiver is attached.
     */
    public void dispose() {
        dispose(false);
@@ -109,6 +111,7 @@ public abstract class InputEventReceiver {
            mInputChannel = null;
        }
        mMessageQueue = null;
        Reference.reachabilityFence(this);
    }

    /**
+3 −1
Original line number Diff line number Diff line
@@ -198,7 +198,9 @@ class TaskPositioningController {
    }

    void finishTaskPositioning() {
        mHandler.post(() -> {
        // TaskPositioner attaches the InputEventReceiver to the animation thread. We need to
        // dispose the receiver on the same thread to avoid race conditions.
        mService.mAnimationHandler.post(() -> {
            if (DEBUG_TASK_POSITIONING) Slog.d(TAG_WM, "finishPositioning");

            synchronized (mService.mGlobalLock) {