From b360eb25d20b3e38af35c5ebea130e4ffbacc20d Mon Sep 17 00:00:00 2001 From: Arthur Hung Date: Fri, 29 Apr 2022 06:38:26 +0000 Subject: Prevent deadlock for clearWaitingDialog Post the dismiss work to prevent the deadlock between the global lock and the ActivityManagerService. Bug: 230077383 Test: atest CtsWindowManagerDeviceTestCases Change-Id: Ie4bbec94d2ac9bd3aaa4f1af8c009c5d81f3ab00 --- services/core/java/com/android/server/am/ErrorDialogController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ErrorDialogController.java b/services/core/java/com/android/server/am/ErrorDialogController.java index a4e8f92a7480..82f35adbb134 100644 --- a/services/core/java/com/android/server/am/ErrorDialogController.java +++ b/services/core/java/com/android/server/am/ErrorDialogController.java @@ -144,7 +144,8 @@ final class ErrorDialogController { if (mWaitDialog == null) { return; } - mWaitDialog.dismiss(); + final BaseErrorDialog dialog = mWaitDialog; + mService.mUiHandler.post(dialog::dismiss); mWaitDialog = null; } -- cgit v1.2.3-59-g8ed1b