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

Commit f6f09c54 authored by Hall Liu's avatar Hall Liu Committed by android-build-merger
Browse files

Merge "Fix flaky AnalytisTest by locking in EventRecord" am: 0a390095 am: e90962ff

am: d96fd153

Change-Id: I37232a10e503887fdd436c4504a53f993da4f1b2
parents 8dd60c3d d96fd153
Loading
Loading
Loading
Loading
+20 −16
Original line number Diff line number Diff line
@@ -180,7 +180,7 @@ public class EventManager {
            }
        }

        private final List<Event> mEvents = new LinkedList<>();
        private final List<Event> mEvents = Collections.synchronizedList(new LinkedList<>());
        private final Loggable mRecordEntry;

        public EventRecord(Loggable recordEntry) {
@@ -197,7 +197,7 @@ public class EventManager {
        }

        public List<Event> getEvents() {
            return mEvents;
            return new LinkedList<>(mEvents);
        }

        public List<EventTiming> extractEventTimings() {
@@ -207,11 +207,13 @@ public class EventManager {

            LinkedList<EventTiming> result = new LinkedList<>();
            Map<String, PendingResponse> pendingResponses = new HashMap<>();
            synchronized (mEvents) {
                for (Event event : mEvents) {
                    if (requestResponsePairs.containsKey(event.eventId)) {
                        // This event expects a response, so add that expected response to the maps
                        // of pending events.
                    for (EventManager.TimedEventPair p : requestResponsePairs.get(event.eventId)) {
                        for (EventManager.TimedEventPair p : requestResponsePairs.get(
                                event.eventId)) {
                            pendingResponses.put(p.mResponse, new PendingResponse(event.eventId,
                                    event.time, p.mTimeoutMillis, p.mName));
                        }
@@ -225,6 +227,7 @@ public class EventManager {
                        }
                    }
                }
            }

            return result;
        }
@@ -233,7 +236,8 @@ public class EventManager {
            pw.print(mRecordEntry.getDescription());

            pw.increaseIndent();
            for (Event event : mEvents) {
            // Iterate over copy of events so that this doesn't hold the lock for too long.
            for (Event event : getEvents()) {
                pw.print(event.timestampString);
                pw.print(" - ");
                pw.print(event.eventId);