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

Commit d8bb71e0 authored by Makoto Onuki's avatar Makoto Onuki
Browse files

Avoid unnecessary system calls

Test: boot
Bug: N/A
Change-Id: I428d0518e78059192de84e4043faf7f991aa8fff
parent 3a96e7a8
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -43,9 +43,9 @@ public class ThreadPriorityBooster {

    public void boost() {
        final int tid = myTid();
        final int prevPriority = getThreadPriority(tid);
        final PriorityState state = mThreadState.get();
        if (state.regionCounter == 0) {
            final int prevPriority = getThreadPriority(tid);
            state.prevPriority = prevPriority;
            if (prevPriority > mBoostToPriority) {
                setThreadPriority(tid, mBoostToPriority);
@@ -60,11 +60,13 @@ public class ThreadPriorityBooster {
    public void reset() {
        final PriorityState state = mThreadState.get();
        state.regionCounter--;
        if (state.regionCounter == 0) {
            final int currentPriority = getThreadPriority(myTid());
        if (state.regionCounter == 0 && state.prevPriority != currentPriority) {
            if (state.prevPriority != currentPriority) {
                setThreadPriority(myTid(), state.prevPriority);
            }
        }
    }

    /**
     * Updates the priority we boost the threads to, and updates the current thread's priority if
@@ -77,11 +79,13 @@ public class ThreadPriorityBooster {
        mBoostToPriority = priority;
        final PriorityState state = mThreadState.get();
        final int tid = myTid();
        if (state.regionCounter != 0) {
            final int prevPriority = getThreadPriority(tid);
        if (state.regionCounter != 0 && prevPriority != priority) {
            if (prevPriority != priority) {
                setThreadPriority(tid, priority);
            }
        }
    }

    private static class PriorityState {