diff options
| author | 2016-08-04 21:59:50 +0000 | |
|---|---|---|
| committer | 2016-08-04 21:59:51 +0000 | |
| commit | 2f917df4be5963bc30f2f684208c9aa4177353cc (patch) | |
| tree | 9eed2872bb00bc74e4ad24c431b5a1eae8d4d598 | |
| parent | a96e7ac4638f11a7e99f6b3cf426548096a5957a (diff) | |
| parent | 29a4a9edb30c0ca25f3e51139962f84c2160b0ed (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.java | 17 |
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); } } } |