From 092c15cfd9b3b224f1bd9080654ffaf9d99e7b86 Mon Sep 17 00:00:00 2001 From: Yi Kong Date: Thu, 18 Nov 2021 14:22:45 +0800 Subject: [PATCH] profcollect: trace on background thread trace is a blocking event, needs to be moved off from the main thread. Test: build Bug: 206893189 Change-Id: Iead5a8f2471c2c0dbe0903294b7dcaf0b810256d --- .../ProfcollectForwardingService.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java b/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java index 4fb801e188d0..337ee726cbc7 100644 --- a/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java +++ b/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java @@ -230,14 +230,16 @@ public final class ProfcollectForwardingService extends SystemService { "applaunch_trace_freq", 2); int randomNum = ThreadLocalRandom.current().nextInt(100); if (randomNum < traceFrequency) { - try { - if (DEBUG) { - Log.d(LOG_TAG, "Tracing on app launch event: " + packageName); - } - mIProfcollect.trace_once("applaunch"); - } catch (RemoteException e) { - Log.e(LOG_TAG, e.getMessage()); + if (DEBUG) { + Log.d(LOG_TAG, "Tracing on app launch event: " + packageName); } + BackgroundThread.get().getThreadHandler().post(() -> { + try { + mIProfcollect.trace_once("applaunch"); + } catch (RemoteException e) { + Log.e(LOG_TAG, e.getMessage()); + } + }); } }