summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ruben Brunk <rubenbrunk@google.com> 2016-08-04 21:59:50 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-08-04 21:59:51 +0000
commit2f917df4be5963bc30f2f684208c9aa4177353cc (patch)
tree9eed2872bb00bc74e4ad24c431b5a1eae8d4d598
parenta96e7ac4638f11a7e99f6b3cf426548096a5957a (diff)
parent29a4a9edb30c0ca25f3e51139962f84c2160b0ed (diff)
Merge "Don't crash system server when setting scheduler." into nyc-mr1-dev
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 5cd0255f1cb3..e336ed5e34ab 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -2328,12 +2328,17 @@ public final class ActivityManagerService extends ActivityManagerNative
ProcessRecord proc = r.app;
if (proc.vrThreadTid > 0) {
if (proc.curSchedGroup == ProcessList.SCHED_GROUP_TOP_APP) {
- if (mInVrMode == true) {
- Process.setThreadScheduler(proc.vrThreadTid,
- Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
- } else {
- Process.setThreadScheduler(proc.vrThreadTid,
- Process.SCHED_OTHER, 0);
+ try {
+ if (mInVrMode == true) {
+ Process.setThreadScheduler(proc.vrThreadTid,
+ Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, 1);
+ } else {
+ Process.setThreadScheduler(proc.vrThreadTid,
+ Process.SCHED_OTHER, 0);
+ }
+ } catch (IllegalArgumentException e) {
+ Slog.e(TAG, "Failed to set scheduling policy, thread does"
+ + " not exist:\n" + e);
}
}
}