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

Commit 1d24aaa4 authored by Glenn Kasten's avatar Glenn Kasten
Browse files

Bug 4608375

Update priority and policy together for audio threads

Change-Id: Ib3b07b32586c222c4aacbf23414ae8b05db502be
parent 622d5441
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -332,10 +332,17 @@ int androidSetThreadPriority(pid_t tid, int pri)


    pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup);
    pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup);
    if (gDoSchedulingGroup) {
    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) {
        if (pri >= ANDROID_PRIORITY_BACKGROUND) {
            rc = set_sched_policy(tid, SP_BACKGROUND);
            rc = set_sched_policy(policy_tid, SP_BACKGROUND);
        } else if (getpriority(PRIO_PROCESS, tid) >= ANDROID_PRIORITY_BACKGROUND) {
        } else if (getpriority(PRIO_PROCESS, tid) >= ANDROID_PRIORITY_BACKGROUND) {
            rc = set_sched_policy(tid, SP_FOREGROUND);
            rc = set_sched_policy(policy_tid, SP_FOREGROUND);
        }
        }
    }
    }


+1 −1
Original line number Original line Diff line number Diff line
@@ -1946,7 +1946,7 @@ status_t MPEG4Writer::Track::threadEntry() {
    } else {
    } else {
        prctl(PR_SET_NAME, (unsigned long)"VideoTrackEncoding", 0, 0, 0);
        prctl(PR_SET_NAME, (unsigned long)"VideoTrackEncoding", 0, 0, 0);
    }
    }
    setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_AUDIO);
    androidSetThreadPriority(0, ANDROID_PRIORITY_AUDIO);


    sp<MetaData> meta_data;
    sp<MetaData> meta_data;


+1 −2
Original line number Original line Diff line number Diff line
@@ -210,8 +210,7 @@ void *TimedEventQueue::ThreadWrapper(void *me) {
    vm->AttachCurrentThread(&env, NULL);
    vm->AttachCurrentThread(&env, NULL);
#endif
#endif


    setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_FOREGROUND);
    androidSetThreadPriority(0, ANDROID_PRIORITY_FOREGROUND);
    set_sched_policy(androidGetTid(), SP_FOREGROUND);


    static_cast<TimedEventQueue *>(me)->threadEntry();
    static_cast<TimedEventQueue *>(me)->threadEntry();


+1 −1
Original line number Original line Diff line number Diff line
@@ -116,7 +116,7 @@ void *OMX::CallbackDispatcher::ThreadWrapper(void *me) {
}
}


void OMX::CallbackDispatcher::threadEntry() {
void OMX::CallbackDispatcher::threadEntry() {
    setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_AUDIO);
    androidSetThreadPriority(0, ANDROID_PRIORITY_AUDIO);
    prctl(PR_SET_NAME, (unsigned long)"OMXCallbackDisp", 0, 0, 0);
    prctl(PR_SET_NAME, (unsigned long)"OMXCallbackDisp", 0, 0, 0);


    for (;;) {
    for (;;) {