Don't reset current thread's priority accidentally.
If there's no RenderThread for the top app and FIFO UI is enabled, it's
possible to reset the current system_server thread's priority and
scheduler.
bug 30173296
Change-Id: I15da2563356ddd66911d695db43660ce5400da07
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 8716811..67ff085 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -20265,10 +20265,12 @@
if (mUseFifoUiScheduling) {
// Reset UI pipeline to SCHED_OTHER
Process.setThreadScheduler(app.pid, Process.SCHED_OTHER, 0);
- Process.setThreadScheduler(app.renderThreadTid,
- Process.SCHED_OTHER, 0);
Process.setThreadPriority(app.pid, app.savedPriority);
- Process.setThreadPriority(app.renderThreadTid, -4);
+ if (app.renderThreadTid != 0) {
+ Process.setThreadScheduler(app.renderThreadTid,
+ Process.SCHED_OTHER, 0);
+ Process.setThreadPriority(app.renderThreadTid, -4);
+ }
}
}
} catch (Exception e) {