From b76564ede73ba3aac25befbc18862f514d6a81a4 Mon Sep 17 00:00:00 2001 From: Chris Li Date: Wed, 9 Feb 2022 20:35:31 +0800 Subject: [PATCH] Hold lock when start pending transaction Fix: 217777115 Test: pass existing Change-Id: I0bafa2b92dc888c684d0ae8b4b4c4cb065d14bd3 --- .../com/android/server/wm/WindowOrganizerController.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index 27024ce77bd2b..1d5c1841fde14 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -1146,7 +1146,11 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub final PendingTransaction pt = mPendingTransactions.remove(0); pt.startSync(); // Post this so that the now-playing transition setup isn't interrupted. - mService.mH.post(pt::startTransaction); + mService.mH.post(() -> { + synchronized (mGlobalLock) { + pt.startTransaction(); + } + }); } @Override