summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Li <lihongyu@google.com> 2024-09-05 02:00:14 +0000
committer Chris Li <lihongyu@google.com> 2024-09-05 02:05:49 +0000
commitc4491b4c9591b2f4a66dc8f04a951dffe46b383c (patch)
tree258051ecbc1ed7b5af438ee40a71a33852e6f0f5
parent5b8b3ed42b8ff7c1cda882fac5b9a1b80d4799dd (diff)
Ensure lock for unregisterActivityConfigurationListener
onServiceStarted is called from AM without WM lock. Fix: 364692215 Test: build Flag: EXEMPT bug fix Change-Id: I368620c7e8b19f1e8b0a51f8f20190cfb534d105
-rw-r--r--services/core/java/com/android/server/wm/WindowProcessController.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java
index b6b36c716a53..2957504ecff5 100644
--- a/services/core/java/com/android/server/wm/WindowProcessController.java
+++ b/services/core/java/com/android/server/wm/WindowProcessController.java
@@ -1926,7 +1926,12 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
// showing.
// If the configuration has been overridden by previous activity, empty it.
mIsActivityConfigOverrideAllowed = false;
- unregisterActivityConfigurationListener();
+ // The call to `onServiceStarted` is not guarded with WM lock.
+ mAtm.mH.post(() -> {
+ synchronized (mAtm.mGlobalLock) {
+ unregisterActivityConfigurationListener();
+ }
+ });
break;
default:
break;