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

Commit 9552d1ee authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Use a local list to handle removing process" into main

parents ab0182ca 5a8f8562
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -6192,11 +6192,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
            synchronized (mGlobalLockWithoutBoost) {
                final WindowProcessController proc = mProcessNames.remove(name, uid);
                if (proc != null && !mStartingProcessActivities.isEmpty()) {
                    for (int i = mStartingProcessActivities.size() - 1; i >= 0; i--) {
                        final ActivityRecord r = mStartingProcessActivities.get(i);
                    // Use a copy in case finishIfPossible changes the list indirectly.
                    final ArrayList<ActivityRecord> activities =
                            new ArrayList<>(mStartingProcessActivities);
                    for (int i = activities.size() - 1; i >= 0; i--) {
                        final ActivityRecord r = activities.get(i);
                        if (uid == r.info.applicationInfo.uid && name.equals(r.processName)) {
                            Slog.w(TAG, proc + " is removed with pending start " + r);
                            mStartingProcessActivities.remove(i);
                            mStartingProcessActivities.remove(r);
                            // If visible, finish it to avoid getting stuck on screen.
                            if (r.isVisibleRequested()) {
                                r.finishIfPossible("starting-proc-removed", false /* oomAdj */);