diff options
-rw-r--r-- | services/inputflinger/InputFilterCallbacks.cpp | 3 | ||||
-rw-r--r-- | services/inputflinger/InputThread.cpp | 7 | ||||
-rw-r--r-- | services/inputflinger/dispatcher/InputDispatcher.cpp | 3 | ||||
-rw-r--r-- | services/inputflinger/dispatcher/trace/ThreadedBackend.cpp | 2 | ||||
-rw-r--r-- | services/inputflinger/include/InputThread.h | 4 | ||||
-rw-r--r-- | services/inputflinger/reader/InputReader.cpp | 3 |
6 files changed, 13 insertions, 9 deletions
diff --git a/services/inputflinger/InputFilterCallbacks.cpp b/services/inputflinger/InputFilterCallbacks.cpp index 5fbdc84c4b..493459acfb 100644 --- a/services/inputflinger/InputFilterCallbacks.cpp +++ b/services/inputflinger/InputFilterCallbacks.cpp @@ -44,7 +44,8 @@ public: InputFilterThread(std::shared_ptr<IInputThreadCallback> callback) : mCallback(callback) { mLooper = sp<Looper>::make(/*allowNonCallbacks=*/false); mThread = std::make_unique<InputThread>( - "InputFilter", [this]() { loopOnce(); }, [this]() { mLooper->wake(); }); + "InputFilter", [this]() { loopOnce(); }, [this]() { mLooper->wake(); }, + /*isInCriticalPath=*/false); } ndk::ScopedAStatus finish() override { diff --git a/services/inputflinger/InputThread.cpp b/services/inputflinger/InputThread.cpp index 449eb45b4b..bd4b192e22 100644 --- a/services/inputflinger/InputThread.cpp +++ b/services/inputflinger/InputThread.cpp @@ -45,11 +45,12 @@ private: } // namespace -InputThread::InputThread(std::string name, std::function<void()> loop, std::function<void()> wake) +InputThread::InputThread(std::string name, std::function<void()> loop, std::function<void()> wake, + bool isInCriticalPath) : mName(name), mThreadWake(wake) { mThread = sp<InputThreadImpl>::make(loop); mThread->run(mName.c_str(), ANDROID_PRIORITY_URGENT_DISPLAY); - if (input_flags::enable_input_policy_profile()) { + if (input_flags::enable_input_policy_profile() && isInCriticalPath) { if (!applyInputEventProfile()) { LOG(ERROR) << "Couldn't apply input policy profile for " << name; } @@ -84,4 +85,4 @@ bool InputThread::applyInputEventProfile() { #endif } -} // namespace android
\ No newline at end of file +} // namespace android diff --git a/services/inputflinger/dispatcher/InputDispatcher.cpp b/services/inputflinger/dispatcher/InputDispatcher.cpp index 75b494bfd1..0be107de2b 100644 --- a/services/inputflinger/dispatcher/InputDispatcher.cpp +++ b/services/inputflinger/dispatcher/InputDispatcher.cpp @@ -981,7 +981,8 @@ status_t InputDispatcher::start() { return ALREADY_EXISTS; } mThread = std::make_unique<InputThread>( - "InputDispatcher", [this]() { dispatchOnce(); }, [this]() { mLooper->wake(); }); + "InputDispatcher", [this]() { dispatchOnce(); }, [this]() { mLooper->wake(); }, + /*isInCriticalPath=*/true); return OK; } diff --git a/services/inputflinger/dispatcher/trace/ThreadedBackend.cpp b/services/inputflinger/dispatcher/trace/ThreadedBackend.cpp index 3c3c15a64c..4f61885162 100644 --- a/services/inputflinger/dispatcher/trace/ThreadedBackend.cpp +++ b/services/inputflinger/dispatcher/trace/ThreadedBackend.cpp @@ -41,7 +41,7 @@ ThreadedBackend<Backend>::ThreadedBackend(Backend&& innerBackend) : mBackend(std::move(innerBackend)), mTracerThread( "InputTracer", [this]() { threadLoop(); }, - [this]() { mThreadWakeCondition.notify_all(); }) {} + [this]() { mThreadWakeCondition.notify_all(); }, /*isInCriticalPath=*/false) {} template <typename Backend> ThreadedBackend<Backend>::~ThreadedBackend() { diff --git a/services/inputflinger/include/InputThread.h b/services/inputflinger/include/InputThread.h index fcd913db7c..595f5a2b9e 100644 --- a/services/inputflinger/include/InputThread.h +++ b/services/inputflinger/include/InputThread.h @@ -28,8 +28,8 @@ namespace android { */ class InputThread { public: - explicit InputThread(std::string name, std::function<void()> loop, - std::function<void()> wake = nullptr); + explicit InputThread(std::string name, std::function<void()> loop, std::function<void()> wake, + bool isInCriticalPath); virtual ~InputThread(); bool isCallingThread(); diff --git a/services/inputflinger/reader/InputReader.cpp b/services/inputflinger/reader/InputReader.cpp index a5b12490a3..a6f5df7593 100644 --- a/services/inputflinger/reader/InputReader.cpp +++ b/services/inputflinger/reader/InputReader.cpp @@ -122,7 +122,8 @@ status_t InputReader::start() { return ALREADY_EXISTS; } mThread = std::make_unique<InputThread>( - "InputReader", [this]() { loopOnce(); }, [this]() { mEventHub->wake(); }); + "InputReader", [this]() { loopOnce(); }, [this]() { mEventHub->wake(); }, + /*isInCriticalPath=*/true); return OK; } |