summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskManagerService.java15
1 files changed, 7 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 4a658d6abaf4..10ff3a3b2e9b 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -546,6 +546,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
*/
private volatile long mLastStopAppSwitchesTime;
+ @GuardedBy("itself")
private final List<AnrController> mAnrController = new ArrayList<>();
IActivityController mController = null;
boolean mControllerIsAMonkey = false;
@@ -733,7 +734,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
private boolean mShowDialogs = true;
/** Set if we are shutting down the system, similar to sleeping. */
- boolean mShuttingDown = false;
+ volatile boolean mShuttingDown;
/**
* We want to hold a wake lock while running a voice interaction session, since
@@ -2298,14 +2299,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
/** Register an {@link AnrController} to control the ANR dialog behavior */
public void registerAnrController(AnrController controller) {
- synchronized (mGlobalLock) {
+ synchronized (mAnrController) {
mAnrController.add(controller);
}
}
/** Unregister an {@link AnrController} */
public void unregisterAnrController(AnrController controller) {
- synchronized (mGlobalLock) {
+ synchronized (mAnrController) {
mAnrController.remove(controller);
}
}
@@ -2321,7 +2322,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
}
final ArrayList<AnrController> controllers;
- synchronized (mGlobalLock) {
+ synchronized (mAnrController) {
controllers = new ArrayList<>(mAnrController);
}
@@ -6034,15 +6035,13 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
@Override
public boolean isShuttingDown() {
- synchronized (mGlobalLock) {
- return mShuttingDown;
- }
+ return mShuttingDown;
}
@Override
public boolean shuttingDown(boolean booted, int timeout) {
+ mShuttingDown = true;
synchronized (mGlobalLock) {
- mShuttingDown = true;
mRootWindowContainer.prepareForShutdown();
updateEventDispatchingLocked(booted);
notifyTaskPersisterLocked(null, true);