diff options
| author | 2019-08-19 13:47:09 -0700 | |
|---|---|---|
| committer | 2019-08-19 13:47:09 -0700 | |
| commit | 8eec5d9ee46c3b03b3b4595e46ff8a8eb6a80ef3 (patch) | |
| tree | 9ec0a52e56022b366b3e3a3307fb40866ce463bb | |
| parent | 2a051239f9c09b0af2ea56002bdbde2e2a35454e (diff) | |
| parent | 238a04ef59c8f9c9ceaa9ce76f96c260cfdf5fb7 (diff) | |
Merge "BatteryService: scheduleUpdate asynchronously"
am: 238a04ef59
Change-Id: I77add2054b9f9e1c19067dfa169476a9e9d583f6
| -rw-r--r-- | services/core/java/com/android/server/BatteryService.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java index 6a9f5b651016..d18b4f64f039 100644 --- a/services/core/java/com/android/server/BatteryService.java +++ b/services/core/java/com/android/server/BatteryService.java @@ -1235,14 +1235,21 @@ public final class BatteryService extends SystemService { } @Override public void scheduleUpdate() throws RemoteException { - traceBegin("HealthScheduleUpdate"); - try { - IHealth service = mHealthServiceWrapper.getLastService(); - if (service == null) throw new RemoteException("no health service"); - service.update(); - } finally { - traceEnd(); - } + mHealthServiceWrapper.getHandlerThread().getThreadHandler().post(() -> { + traceBegin("HealthScheduleUpdate"); + try { + IHealth service = mHealthServiceWrapper.getLastService(); + if (service == null) { + Slog.e(TAG, "no health service"); + return; + } + service.update(); + } catch (RemoteException ex) { + Slog.e(TAG, "Cannot call update on health HAL", ex); + } finally { + traceEnd(); + } + }); } } @@ -1319,7 +1326,7 @@ public final class BatteryService extends SystemService { Arrays.asList(INSTANCE_VENDOR, INSTANCE_HEALTHD); private final IServiceNotification mNotification = new Notification(); - private final HandlerThread mHandlerThread = new HandlerThread("HealthServiceRefresh"); + private final HandlerThread mHandlerThread = new HandlerThread("HealthServiceHwbinder"); // These variables are fixed after init. private Callback mCallback; private IHealthSupplier mHealthSupplier; |