Merge changes from topic "revert_androidSetThreadPriority_api" am: 2b1c37a3e4 am: 75595e006e

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1440132

Change-Id: I1595b5fbebfa9dfb775b79ffa980b9e5a60bd03a
This commit is contained in:
Rick Yiu 2020-09-28 02:52:44 +00:00 committed by Automerger Merge Worker
commit 9bb11eb78e
2 changed files with 12 additions and 28 deletions

View file

@ -302,8 +302,8 @@ void androidSetCreateThreadFunc(android_create_thread_fn func)
}
#if defined(__ANDROID__)
namespace {
int androidSetThreadPriorityInternal(pid_t tid, int pri, bool change_policy) {
int androidSetThreadPriority(pid_t tid, int pri)
{
int rc = 0;
int lasterr = 0;
int curr_pri = getpriority(PRIO_PROCESS, tid);
@ -312,19 +312,17 @@ int androidSetThreadPriorityInternal(pid_t tid, int pri, bool change_policy) {
return rc;
}
if (change_policy) {
if (pri >= ANDROID_PRIORITY_BACKGROUND) {
rc = SetTaskProfiles(tid, {"SCHED_SP_BACKGROUND"}, true) ? 0 : -1;
} else if (curr_pri >= ANDROID_PRIORITY_BACKGROUND) {
SchedPolicy policy = SP_FOREGROUND;
// Change to the sched policy group of the process.
get_sched_policy(getpid(), &policy);
rc = SetTaskProfiles(tid, {get_sched_policy_profile_name(policy)}, true) ? 0 : -1;
}
if (pri >= ANDROID_PRIORITY_BACKGROUND) {
rc = SetTaskProfiles(tid, {"SCHED_SP_BACKGROUND"}, true) ? 0 : -1;
} else if (curr_pri >= ANDROID_PRIORITY_BACKGROUND) {
SchedPolicy policy = SP_FOREGROUND;
// Change to the sched policy group of the process.
get_sched_policy(getpid(), &policy);
rc = SetTaskProfiles(tid, {get_sched_policy_profile_name(policy)}, true) ? 0 : -1;
}
if (rc) {
lasterr = errno;
}
if (rc) {
lasterr = errno;
}
if (setpriority(PRIO_PROCESS, tid, pri) < 0) {
@ -335,15 +333,6 @@ int androidSetThreadPriorityInternal(pid_t tid, int pri, bool change_policy) {
return rc;
}
} // namespace
int androidSetThreadPriority(pid_t tid, int pri) {
return androidSetThreadPriorityInternal(tid, pri, true);
}
int androidSetThreadPriorityAndPolicy(pid_t tid, int pri, bool change_policy) {
return androidSetThreadPriorityInternal(tid, pri, change_policy);
}
int androidGetThreadPriority(pid_t tid) {
return getpriority(PRIO_PROCESS, tid);

View file

@ -78,13 +78,8 @@ extern void androidSetCreateThreadFunc(android_create_thread_fn func);
// should be one of the ANDROID_PRIORITY constants. Returns INVALID_OPERATION
// if the priority set failed, else another value if just the group set failed;
// in either case errno is set. Thread ID zero means current thread.
// This is equivalent to androidSetThreadPriorityAndPolicy(tid, prio, true);
extern int androidSetThreadPriority(pid_t tid, int prio);
// Parameter "change_policy" indicates if sched policy should be changed. It needs
// not be checked again if the change is done elsewhere like activity manager.
extern int androidSetThreadPriorityAndPolicy(pid_t tid, int prio, bool change_policy);
// Get the current priority of a particular thread. Returns one of the
// ANDROID_PRIORITY constants or a negative result in case of error.
extern int androidGetThreadPriority(pid_t tid);