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

Commit 84b5185c authored by Jeff Chang's avatar Jeff Chang Committed by Android (Google) Code Review
Browse files

Merge "Fix a deadlock symptom between AM/WM"

parents 3175839d ed2f5bc3
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -875,6 +875,7 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio

    public boolean appNotResponding(String info, Runnable killAppCallback,
            Runnable serviceTimeoutCallback) {
        Runnable targetRunnable = null;
        synchronized (mAtm.mGlobalLock) {
            if (mAtm.mController == null) {
                return false;
@@ -885,19 +886,23 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
                int res = mAtm.mController.appNotResponding(mName, mPid, info);
                if (res != 0) {
                    if (res < 0 && mPid != MY_PID) {
                        killAppCallback.run();
                        targetRunnable = killAppCallback;
                    } else {
                        serviceTimeoutCallback.run();
                        targetRunnable = serviceTimeoutCallback;
                    }
                    return true;
                }
            } catch (RemoteException e) {
                mAtm.mController = null;
                Watchdog.getInstance().setActivityController(null);
            }
                return false;
            }
        }
        if (targetRunnable != null) {
            targetRunnable.run();
            return true;
        }
        return false;
    }

    public void onTopProcChanged() {
        synchronized (mAtm.mGlobalLock) {