Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d6b7111 authored by Rick Yiu's avatar Rick Yiu Committed by Automerger Merge Worker
Browse files

Merge "Add choice for changing sched policy when setting thread priority" am:...

Merge "Add choice for changing sched policy when setting thread priority" am: 9ada65c0 am: 0d69819b

Change-Id: I88b2d0e70aa8edf5d67a1ebecfa235d4c08e4b58
parents 8041ea25 0d69819b
Loading
Loading
Loading
Loading
+13 −12
Original line number Diff line number Diff line
@@ -302,8 +302,7 @@ void androidSetCreateThreadFunc(android_create_thread_fn func)
}

#if defined(__ANDROID__)
int androidSetThreadPriority(pid_t tid, int pri)
{
int androidSetThreadPriority(pid_t tid, int pri, bool change_policy) {
    int rc = 0;
    int lasterr = 0;
    int curr_pri = getpriority(PRIO_PROCESS, tid);
@@ -312,6 +311,7 @@ int androidSetThreadPriority(pid_t tid, int pri)
        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) {
@@ -324,6 +324,7 @@ int androidSetThreadPriority(pid_t tid, int pri)
        if (rc) {
            lasterr = errno;
        }
    }

    if (setpriority(PRIO_PROCESS, tid, pri) < 0) {
        rc = INVALID_OPERATION;
+3 −1
Original line number Diff line number Diff line
@@ -78,7 +78,9 @@ 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.
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 androidSetThreadPriority(pid_t tid, int prio, bool change_policy = true);

// Get the current priority of a particular thread. Returns one of the
// ANDROID_PRIORITY constants or a negative result in case of error.