Loading services/inputflinger/dispatcher/trace/ThreadedBackend.cpp +3 −3 Original line number Original line Diff line number Diff line Loading @@ -38,10 +38,10 @@ struct Visitor : V... { template <typename Backend> template <typename Backend> ThreadedBackend<Backend>::ThreadedBackend(Backend&& innerBackend) ThreadedBackend<Backend>::ThreadedBackend(Backend&& innerBackend) : mTracerThread( : mBackend(std::move(innerBackend)), mTracerThread( "InputTracer", [this]() { threadLoop(); }, "InputTracer", [this]() { threadLoop(); }, [this]() { mThreadWakeCondition.notify_all(); }), [this]() { mThreadWakeCondition.notify_all(); }) {} mBackend(std::move(innerBackend)) {} template <typename Backend> template <typename Backend> ThreadedBackend<Backend>::~ThreadedBackend() { ThreadedBackend<Backend>::~ThreadedBackend() { Loading services/inputflinger/dispatcher/trace/ThreadedBackend.h +5 −1 Original line number Original line Diff line number Diff line Loading @@ -44,7 +44,6 @@ public: private: private: std::mutex mLock; std::mutex mLock; InputThread mTracerThread; bool mThreadExit GUARDED_BY(mLock){false}; bool mThreadExit GUARDED_BY(mLock){false}; std::condition_variable mThreadWakeCondition; std::condition_variable mThreadWakeCondition; Backend mBackend; Backend mBackend; Loading @@ -53,6 +52,11 @@ private: TracedEventArgs>; TracedEventArgs>; std::vector<TraceEntry> mQueue GUARDED_BY(mLock); std::vector<TraceEntry> mQueue GUARDED_BY(mLock); // InputThread stops when its destructor is called. Initialize it last so that it is the // first thing to be destructed. This will guarantee the thread will not access other // members that have already been destructed. InputThread mTracerThread; void threadLoop(); void threadLoop(); }; }; Loading Loading
services/inputflinger/dispatcher/trace/ThreadedBackend.cpp +3 −3 Original line number Original line Diff line number Diff line Loading @@ -38,10 +38,10 @@ struct Visitor : V... { template <typename Backend> template <typename Backend> ThreadedBackend<Backend>::ThreadedBackend(Backend&& innerBackend) ThreadedBackend<Backend>::ThreadedBackend(Backend&& innerBackend) : mTracerThread( : mBackend(std::move(innerBackend)), mTracerThread( "InputTracer", [this]() { threadLoop(); }, "InputTracer", [this]() { threadLoop(); }, [this]() { mThreadWakeCondition.notify_all(); }), [this]() { mThreadWakeCondition.notify_all(); }) {} mBackend(std::move(innerBackend)) {} template <typename Backend> template <typename Backend> ThreadedBackend<Backend>::~ThreadedBackend() { ThreadedBackend<Backend>::~ThreadedBackend() { Loading
services/inputflinger/dispatcher/trace/ThreadedBackend.h +5 −1 Original line number Original line Diff line number Diff line Loading @@ -44,7 +44,6 @@ public: private: private: std::mutex mLock; std::mutex mLock; InputThread mTracerThread; bool mThreadExit GUARDED_BY(mLock){false}; bool mThreadExit GUARDED_BY(mLock){false}; std::condition_variable mThreadWakeCondition; std::condition_variable mThreadWakeCondition; Backend mBackend; Backend mBackend; Loading @@ -53,6 +52,11 @@ private: TracedEventArgs>; TracedEventArgs>; std::vector<TraceEntry> mQueue GUARDED_BY(mLock); std::vector<TraceEntry> mQueue GUARDED_BY(mLock); // InputThread stops when its destructor is called. Initialize it last so that it is the // first thing to be destructed. This will guarantee the thread will not access other // members that have already been destructed. InputThread mTracerThread; void threadLoop(); void threadLoop(); }; }; Loading