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

Commit acd7f2c7 authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

Avoid excessive logging when the necessary proc file is unavailable.

Bug: 34133340
Test: manual
Change-Id: Ic00e58a5b7bb7f92a0467df1cab8df5cab7dffda
parent d2638591
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -53,10 +53,21 @@ public class KernelUidCpuFreqTimeReader {

    private SparseArray<long[]> mLastUidCpuFreqTimeMs = new SparseArray<>();

    // We check the existence of proc file a few times (just in case it is not ready yet when we
    // start reading) and if it is not available, we simply ignore further read requests.
    private static final int TOTAL_READ_ERROR_COUNT = 5;
    private int mReadErrorCounter;
    private boolean mProcFileAvailable;

    public void readDelta(@Nullable Callback callback) {
        if (!mProcFileAvailable && mReadErrorCounter >= TOTAL_READ_ERROR_COUNT) {
            return;
        }
        try (BufferedReader reader = new BufferedReader(new FileReader(UID_TIMES_PROC_FILE))) {
            readDelta(reader, callback);
            mProcFileAvailable = true;
        } catch (IOException e) {
            mReadErrorCounter++;
            Slog.e(TAG, "Failed to read " + UID_TIMES_PROC_FILE + ": " + e);
        }
    }