Thread ID zero for androidSetThreadSchedulingGroup
Already implemented by androidSetThreadPriority but not documented Change-Id: I85302b17092952065f3f3a4214d8d8abdd465dbd
This commit is contained in:
parent
d80fa1aa39
commit
ce63396eff
@ -133,13 +133,13 @@ extern pid_t androidGetTid();
|
|||||||
// Change the scheduling group of a particular thread. The group
|
// Change the scheduling group of a particular thread. The group
|
||||||
// should be one of the ANDROID_TGROUP constants. Returns BAD_VALUE if
|
// should be one of the ANDROID_TGROUP constants. Returns BAD_VALUE if
|
||||||
// grp is out of range, else another non-zero value with errno set if
|
// grp is out of range, else another non-zero value with errno set if
|
||||||
// the operation failed.
|
// the operation failed. Thread ID zero means current thread.
|
||||||
extern int androidSetThreadSchedulingGroup(pid_t tid, int grp);
|
extern int androidSetThreadSchedulingGroup(pid_t tid, int grp);
|
||||||
|
|
||||||
// Change the priority AND scheduling group of a particular thread. The priority
|
// Change the priority AND scheduling group of a particular thread. The priority
|
||||||
// should be one of the ANDROID_PRIORITY constants. Returns INVALID_OPERATION
|
// 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;
|
// if the priority set failed, else another value if just the group set failed;
|
||||||
// in either case errno is set.
|
// in either case errno is set. Thread ID zero means current thread.
|
||||||
extern int androidSetThreadPriority(pid_t tid, int prio);
|
extern int androidSetThreadPriority(pid_t tid, int prio);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -316,6 +316,10 @@ int androidSetThreadSchedulingGroup(pid_t tid, int grp)
|
|||||||
#if defined(HAVE_PTHREADS)
|
#if defined(HAVE_PTHREADS)
|
||||||
pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup);
|
pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup);
|
||||||
if (gDoSchedulingGroup) {
|
if (gDoSchedulingGroup) {
|
||||||
|
// set_sched_policy does not support tid == 0
|
||||||
|
if (tid == 0) {
|
||||||
|
tid = androidGetTid();
|
||||||
|
}
|
||||||
if (set_sched_policy(tid, (grp == ANDROID_TGROUP_BG_NONINTERACT) ?
|
if (set_sched_policy(tid, (grp == ANDROID_TGROUP_BG_NONINTERACT) ?
|
||||||
SP_BACKGROUND : SP_FOREGROUND)) {
|
SP_BACKGROUND : SP_FOREGROUND)) {
|
||||||
return PERMISSION_DENIED;
|
return PERMISSION_DENIED;
|
||||||
|
Loading…
Reference in New Issue
Block a user