summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Parks <jparks@google.com>2009-11-04 14:25:26 -0800
committerJason Parks <jparks@google.com>2009-11-04 14:25:26 -0800
commitb5c41353337b3db2dc0ca0df163d5294af8281bc (patch)
tree7ffd7d27c1a8f695b9c1f25dfa9aff4baf0ad404
parenta6052978975fbc77db923cc34622dc24467b2534 (diff)
downloadframeworks_native-b5c41353337b3db2dc0ca0df163d5294af8281bc.zip
frameworks_native-b5c41353337b3db2dc0ca0df163d5294af8281bc.tar.gz
frameworks_native-b5c41353337b3db2dc0ca0df163d5294af8281bc.tar.bz2
When a thread is about to be put back onto the thread pool ensure that it is in the foreground cgroup.
-rw-r--r--libs/binder/IPCThreadState.cpp26
1 files changed, 4 insertions, 22 deletions
diff --git a/libs/binder/IPCThreadState.cpp b/libs/binder/IPCThreadState.cpp
index 86c3df6..d474571 100644
--- a/libs/binder/IPCThreadState.cpp
+++ b/libs/binder/IPCThreadState.cpp
@@ -422,31 +422,13 @@ void IPCThreadState::joinThreadPool(bool isMain)
<< getReturnString(cmd) << endl;
}
- bool isTainted = false;
-
- {
- SchedPolicy policy;
- get_sched_policy(getpid(), &policy);
-
- if (policy == SP_BACKGROUND) {
- isTainted = true;
- }
- }
result = executeCommand(cmd);
- // Make sure that after executing the commands that we put the thread back into the
- // default cgroup.
- {
- int pid = getpid();
- SchedPolicy policy;
- get_sched_policy(pid, &policy);
-
- if (!isTainted && policy == SP_BACKGROUND) {
- LOGW("*** THREAD %p (PID %p) was left in SP_BACKGROUND with a priority of %d\n",
- (void*)pthread_self(), pid, getpriority(PRIO_PROCESS, pid));
- }
- }
+ // Make sure that after executing the command that we put the thread back into the
+ // default cgroup. This is just a failsafe incase the thread's priority or cgroup was
+ // not properly restored.
+ set_sched_policy(getpid(), SP_FOREGROUND);
}
// Let this thread exit the thread pool if it is no longer