From cc9537ce558de42577feebeb91a8cc72e102ae2e Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Mon, 4 Aug 2014 09:46:31 -0700 Subject: [PATCH] Call method while holding lock. The method removeRecentTasksForUser() was being called without the ActivityManagerService lock held. This change calles it while the lock is held and renames it to indicate that it should be called while holding the lock. Fixes bug 16775111. Change-Id: I002f9f96d407de458934da8bc728acd54f0c398c --- .../core/java/com/android/server/am/ActivityManagerService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 0ad36fc537b7..275185ae9d72 100755 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -3695,7 +3695,7 @@ public final class ActivityManagerService extends ActivityManagerNative } //explicitly remove thd old information in mRecentTasks when removing existing user. - private void removeRecentTasksForUser(int userId) { + private void removeRecentTasksForUserLocked(int userId) { if(userId <= 0) { Slog.i(TAG, "Can't remove recent task on user " + userId); return; @@ -17724,10 +17724,10 @@ public final class ActivityManagerService extends ActivityManagerNative // Kill all the processes for the user. forceStopUserLocked(userId, "finish user"); } - } - // Explicitly remove the old information in mRecentTasks. - removeRecentTasksForUser(userId); + // Explicitly remove the old information in mRecentTasks. + removeRecentTasksForUserLocked(userId); + } for (int i=0; i