diff options
| author | 2024-09-05 02:00:14 +0000 | |
|---|---|---|
| committer | 2024-09-05 02:05:49 +0000 | |
| commit | c4491b4c9591b2f4a66dc8f04a951dffe46b383c (patch) | |
| tree | 258051ecbc1ed7b5af438ee40a71a33852e6f0f5 | |
| parent | 5b8b3ed42b8ff7c1cda882fac5b9a1b80d4799dd (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.java | 7 |
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; |