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:
commit
9bb11eb78e
2 changed files with 12 additions and 28 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue