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

Commit b2cac4ff authored by Glenn Kasten's avatar Glenn Kasten
Browse files

Continue removing property debug.sys.noschedgroups

Also 0 means gettid() for get_sched_policy() and set_sched_policy().

Change-Id: Ic12edc3df6c9b3e99eae5cffaf9f6fe56cf14043
parent 7e4eb72a
Loading
Loading
Loading
Loading
+8 −37
Original line number Diff line number Diff line
@@ -68,20 +68,6 @@ using namespace android;

typedef void* (*android_pthread_entry)(void*);

static pthread_once_t gDoSchedulingGroupOnce = PTHREAD_ONCE_INIT;
static bool gDoSchedulingGroup = true;

static void checkDoSchedulingGroup(void) {
    char buf[PROPERTY_VALUE_MAX];
    int len = property_get("debug.sys.noschedgroups", buf, "");
    if (len > 0) {
        int temp;
        if (sscanf(buf, "%d", &temp) == 1) {
            gDoSchedulingGroup = temp == 0;
        }
    }
}

struct thread_data_t {
    thread_func_t   entryFunction;
    void*           userData;
@@ -97,15 +83,10 @@ struct thread_data_t {
        char * name = t->threadName;
        delete t;
        setpriority(PRIO_PROCESS, 0, prio);
        pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup);
        if (gDoSchedulingGroup) {
        if (prio >= ANDROID_PRIORITY_BACKGROUND) {
                set_sched_policy(androidGetTid(), SP_BACKGROUND);
            } else if (prio > ANDROID_PRIORITY_AUDIO) {
                set_sched_policy(androidGetTid(), SP_FOREGROUND);
            set_sched_policy(0, SP_BACKGROUND);
        } else {
                // defaults to that of parent, or as set by requestPriority()
            }
            set_sched_policy(0, SP_FOREGROUND);
        }
        
        if (name) {
@@ -333,20 +314,10 @@ int androidSetThreadPriority(pid_t tid, int pri)
#if defined(HAVE_PTHREADS)
    int lasterr = 0;

    pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup);
    if (gDoSchedulingGroup) {
        // set_sched_policy does not support tid == 0
        int policy_tid;
        if (tid == 0) {
            policy_tid = androidGetTid();
        } else {
            policy_tid = tid;
        }
    if (pri >= ANDROID_PRIORITY_BACKGROUND) {
            rc = set_sched_policy(policy_tid, SP_BACKGROUND);
        rc = set_sched_policy(tid, SP_BACKGROUND);
    } else if (getpriority(PRIO_PROCESS, tid) >= ANDROID_PRIORITY_BACKGROUND) {
            rc = set_sched_policy(policy_tid, SP_FOREGROUND);
        }
        rc = set_sched_policy(tid, SP_FOREGROUND);
    }

    if (rc) {