OSDN Git Service

Bug 4608375
authorGlenn Kasten <gkasten@google.com>
Tue, 14 Jun 2011 17:35:34 +0000 (10:35 -0700)
committerGlenn Kasten <gkasten@google.com>
Tue, 14 Jun 2011 17:41:50 +0000 (10:41 -0700)
Update priority and policy together for audio threads

Change-Id: Ib3b07b32586c222c4aacbf23414ae8b05db502be

libs/utils/Threads.cpp

index 8b5da0e..df2fb19 100644 (file)
@@ -332,10 +332,17 @@ int androidSetThreadPriority(pid_t tid, int pri)
 
     pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup);
     if (gDoSchedulingGroup) {
+        // set_sched_policy does not support tid == 0
+        int policy_tid;
+        if (tid == 0) {
+            policy_tid = androidGetTid();
+        } else {
+            policy_tid = tid;
+        }
         if (pri >= ANDROID_PRIORITY_BACKGROUND) {
-            rc = set_sched_policy(tid, SP_BACKGROUND);
+            rc = set_sched_policy(policy_tid, SP_BACKGROUND);
         } else if (getpriority(PRIO_PROCESS, tid) >= ANDROID_PRIORITY_BACKGROUND) {
-            rc = set_sched_policy(tid, SP_FOREGROUND);
+            rc = set_sched_policy(policy_tid, SP_FOREGROUND);
         }
     }