From d9c44734e77b1a2adb098a97637edf6a78f5b1c6 Mon Sep 17 00:00:00 2001 From: bepheis gao Date: Tue, 11 Aug 2020 16:09:18 +0800 Subject: [PATCH] Avoid deadlock during boot up Cp from aosp/1382500 to fix merge conflict Avoid a deadlock that may occurs during boosting time. if we are starting system ui while another thread is executing the enableScreenAfterBoot function at the same time, the deadlock occurs BUG=162566198 Change-Id: Ief47cad91cbbc498179cd38e653bd1fa565cee2e --- .../server/wm/ActivityTaskManagerService.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 31a9c5d4242c9..403f225032e95 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -5347,15 +5347,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { return mAmInternal.isBackgroundActivityStartsEnabled(); } - void enableScreenAfterBoot(boolean booted) { - writeBootProgressEnableScreen(SystemClock.uptimeMillis()); - mWindowManager.enableScreenAfterBoot(); - - synchronized (mGlobalLock) { - updateEventDispatchingLocked(booted); - } - } - static long getInputDispatchingTimeoutMillisLocked(ActivityRecord r) { if (r == null || !r.hasProcess()) { return DEFAULT_DISPATCHING_TIMEOUT_MILLIS; @@ -6449,9 +6440,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { @Override public void enableScreenAfterBoot(boolean booted) { + writeBootProgressEnableScreen(SystemClock.uptimeMillis()); + mWindowManager.enableScreenAfterBoot(); synchronized (mGlobalLock) { - writeBootProgressEnableScreen(SystemClock.uptimeMillis()); - mWindowManager.enableScreenAfterBoot(); updateEventDispatchingLocked(booted); } }