return TRUE;
}
+static void
+_lower_priority()
+{
+ pthread_t self = pthread_self();
+ struct sched_param params;
+ int pol;
+ int err = pthread_getschedparam(self, &pol, ¶ms);
+ if (err != 0)
+ {
+ ERR("fail to get pthread param");
+ return;
+ }
+
+ // lower the priority that was raised by 5 in ecore_thread_feedback_run
+ params.sched_priority -= 5;
+ pthread_setschedparam(self, pol, ¶ms);
+ LOGI("lower priority %d", params.sched_priority);
+}
+
static void
input_thread_start(void *data, Ecore_Thread *th)
{
if (!(input = data)) return;
eina_thread_name_set(eina_thread_self(), "input-thread");
+ _lower_priority();
e_input_backend_libinput_context_create(input);
{
EINA_SAFETY_ON_NULL_RETURN(g_input_backend);
- g_input_backend->input_thread = ecore_thread_feedback_run(input_thread_start, input_thread_feedback, input_thread_end, input_thread_cancel, g_input_backend, EINA_FALSE);
+ g_input_backend->input_thread = ecore_thread_feedback_run(input_thread_start, input_thread_feedback, input_thread_end, input_thread_cancel, g_input_backend, EINA_TRUE);
}
EINTERN void e_input_backend_thread_init()