InputTracer: Use InputThread instead of std::thread
We need to query PackageManager from the trace instace, so we will need
access to the JVM from the tracer thread. Since std::thread does not
have access to the JVM, use InputThread instead.
Bug: 210460522
Test: manual with perfetto
Change-Id: Ifb618765a269ae928d2310fc6af3daf55bf10dc9
diff --git a/services/inputflinger/dispatcher/trace/ThreadedBackend.h b/services/inputflinger/dispatcher/trace/ThreadedBackend.h
index c42f896..5776cf9 100644
--- a/services/inputflinger/dispatcher/trace/ThreadedBackend.h
+++ b/services/inputflinger/dispatcher/trace/ThreadedBackend.h
@@ -16,11 +16,11 @@
#pragma once
+#include "InputThread.h"
#include "InputTracingPerfettoBackend.h"
#include <android-base/thread_annotations.h>
#include <mutex>
-#include <thread>
#include <variant>
#include <vector>
@@ -44,12 +44,12 @@
private:
std::mutex mLock;
- std::thread mTracerThread;
+ InputThread mTracerThread;
bool mThreadExit GUARDED_BY(mLock){false};
std::condition_variable mThreadWakeCondition;
Backend mBackend;
- std::vector<std::variant<TracedKeyEvent, TracedMotionEvent, WindowDispatchArgs>> mQueue
- GUARDED_BY(mLock);
+ using TraceEntry = std::variant<TracedKeyEvent, TracedMotionEvent, WindowDispatchArgs>;
+ std::vector<TraceEntry> mQueue GUARDED_BY(mLock);
using WindowDispatchArgs = InputTracingBackendInterface::WindowDispatchArgs;