add LatencyTracker tracing cancel / timeout events

Bug: 265850090
Test: manual invoke hotword trigger collecting trace and verify in
Perfetto UI that trace has cancel and timeout events

Change-Id: Ie5acefe043575b198ce1fbd1526cc82116649cb3
(cherry picked from commit 3f793d7daa)
Merged-In: Ie5acefe043575b198ce1fbd1526cc82116649cb3
This commit is contained in:
Nicholas Ambur
2023-02-13 19:00:50 +00:00
parent 614f8384db
commit c37e3adeff

View File

@@ -605,23 +605,27 @@ public class LatencyTracker {
void begin(@NonNull Runnable timeoutAction) {
mStartRtc = SystemClock.elapsedRealtime();
Trace.asyncTraceBegin(TRACE_TAG_APP, traceName(), 0);
Trace.asyncTraceForTrackBegin(TRACE_TAG_APP, traceName(), traceName(), 0);
// start counting timeout.
mTimeoutRunnable = timeoutAction;
mTimeoutRunnable = () -> {
Trace.instantForTrack(TRACE_TAG_APP, traceName(), "timeout");
timeoutAction.run();
};
BackgroundThread.getHandler()
.postDelayed(mTimeoutRunnable, TimeUnit.SECONDS.toMillis(15));
}
void end() {
mEndRtc = SystemClock.elapsedRealtime();
Trace.asyncTraceEnd(TRACE_TAG_APP, traceName(), 0);
Trace.asyncTraceForTrackEnd(TRACE_TAG_APP, traceName(), "end", 0);
BackgroundThread.getHandler().removeCallbacks(mTimeoutRunnable);
mTimeoutRunnable = null;
}
void cancel() {
Trace.asyncTraceEnd(TRACE_TAG_APP, traceName(), 0);
Trace.instantForTrack(TRACE_TAG_APP, traceName(), "cancel");
Trace.asyncTraceForTrackEnd(TRACE_TAG_APP, traceName(), "cancel", 0);
BackgroundThread.getHandler().removeCallbacks(mTimeoutRunnable);
mTimeoutRunnable = null;
}