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

Commit 3862660d authored by Jing Ji's avatar Jing Ji
Browse files

Add proper lock to the dropbox throttling map

Bug: 156871564
Test: Manual
Change-Id: I7da4f4b9586ea33eeb66875ab312701f49b62dd3
parent 4bacb142
Loading
Loading
Loading
Loading
+13 −11
Original line number Original line Diff line number Diff line
@@ -10156,7 +10156,7 @@ public class ActivityManagerService extends IActivityManager.Stub
        }
        }
    }
    }
    private volatile ArrayMap<String, long[]> mErrorClusterRecords = new ArrayMap<>();
    private final ArrayMap<String, long[]> mErrorClusterRecords = new ArrayMap<>();
    /**
    /**
     * Write a description of an error (crash, WTF, ANR) to the drop box.
     * Write a description of an error (crash, WTF, ANR) to the drop box.
@@ -10189,6 +10189,7 @@ public class ActivityManagerService extends IActivityManager.Stub
        // Rate-limit how often we're willing to do the heavy lifting below to
        // Rate-limit how often we're willing to do the heavy lifting below to
        // collect and record logs; currently 5 logs per 10 second period per eventType.
        // collect and record logs; currently 5 logs per 10 second period per eventType.
        final long now = SystemClock.elapsedRealtime();
        final long now = SystemClock.elapsedRealtime();
        synchronized (mErrorClusterRecords) {
            long[] errRecord = mErrorClusterRecords.get(eventType);
            long[] errRecord = mErrorClusterRecords.get(eventType);
            if (errRecord == null) {
            if (errRecord == null) {
                errRecord = new long[2]; // [0]: startTime, [1]: count
                errRecord = new long[2]; // [0]: startTime, [1]: count
@@ -10200,6 +10201,7 @@ public class ActivityManagerService extends IActivityManager.Stub
            } else {
            } else {
                if (errRecord[1]++ >= 5) return;
                if (errRecord[1]++ >= 5) return;
            }
            }
        }
        final StringBuilder sb = new StringBuilder(1024);
        final StringBuilder sb = new StringBuilder(1024);
        appendDropBoxProcessHeaders(process, processName, sb);
        appendDropBoxProcessHeaders(process, processName, sb);