From e03fd5910dd4e0c85da5602444629d6364fe3de5 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Fri, 7 Apr 2023 20:42:08 +0900 Subject: [PATCH] Use ecore timer for config changed callbacks Change-Id: I489807ea63d7d16529bcaf7ffa563b45c2635f56 Signed-off-by: Suyeon Hwang --- common/vc_config_mgr.cpp | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/common/vc_config_mgr.cpp b/common/vc_config_mgr.cpp index 9fb301e..6977544 100644 --- a/common/vc_config_mgr.cpp +++ b/common/vc_config_mgr.cpp @@ -71,9 +71,9 @@ static VoiceControlClients *g_VoiceControlClients = nullptr; static VoiceControlConfig *g_VoiceControlConfig = nullptr; -static Ecore_Idler *g_engine_changed_event_idler = NULL; -static Ecore_Idler *g_language_changed_event_idler = NULL; -static Ecore_Idler *g_enabled_changed_event_idler = NULL; +static Ecore_Timer *g_engine_changed_event_invoker = NULL; +static Ecore_Timer *g_language_changed_event_invoker = NULL; +static Ecore_Timer *g_enabled_changed_event_invoker = NULL; static int g_lang_ref_count; static Ecore_Fd_Handler* g_fd_handler_lang = NULL; @@ -87,9 +87,9 @@ static int register_engine_config_updated_event(const char* path); static int unregister_engine_config_updated_event(); static int set_current_language(const char* language); -static Eina_Bool notify_engine_changed_event_by_idler(void *data) +static Eina_Bool notify_engine_changed_event_by_invoker(void *data) { - SLOG(LOG_INFO, vc_config_tag(), "[INFO] Invoke engine changed callback by idler"); + SLOG(LOG_INFO, vc_config_tag(), "[INFO] Invoke engine changed callback asynchronously"); char *engine_appid = static_cast(data); [&engine_appid]() { if (nullptr == engine_appid) { @@ -115,15 +115,15 @@ static Eina_Bool notify_engine_changed_event_by_idler(void *data) }(); free(engine_appid); - g_engine_changed_event_idler = nullptr; + g_engine_changed_event_invoker = nullptr; return EINA_FALSE; } static inline void delete_engine_changed_event_invoker() { - if (nullptr != g_engine_changed_event_idler) { - void *param = ecore_idler_del(g_engine_changed_event_idler); - g_engine_changed_event_idler = nullptr; + if (nullptr != g_engine_changed_event_invoker) { + void *param = ecore_timer_del(g_engine_changed_event_invoker); + g_engine_changed_event_invoker = nullptr; free(static_cast(param)); } } @@ -143,7 +143,7 @@ static void notify_engine_changed(const char *engine_appid) } delete_engine_changed_event_invoker(); - g_engine_changed_event_idler = ecore_idler_add(notify_engine_changed_event_by_idler, static_cast(param)); + g_engine_changed_event_invoker = ecore_timer_add(0.0, notify_engine_changed_event_by_invoker, static_cast(param)); } static inline void release_language_changed_cb_params(language_changed_cb_parameters_s *params) @@ -157,9 +157,9 @@ static inline void release_language_changed_cb_params(language_changed_cb_parame delete params; } -static Eina_Bool notify_language_changed_event_by_idler(void *data) +static Eina_Bool notify_language_changed_event_by_invoker(void *data) { - SLOG(LOG_INFO, vc_config_tag(), "[INFO] Invoke language changed callback by idler"); + SLOG(LOG_INFO, vc_config_tag(), "[INFO] Invoke language changed callback asynchronously"); language_changed_cb_parameters_s *params = static_cast(data); [¶ms]() { if (nullptr == params) { @@ -185,15 +185,15 @@ static Eina_Bool notify_language_changed_event_by_idler(void *data) }(); release_language_changed_cb_params(params); - g_language_changed_event_idler = nullptr; + g_language_changed_event_invoker = nullptr; return EINA_FALSE; } static inline void delete_language_changed_event_invoker() { - if (nullptr != g_language_changed_event_idler) { - void *params = ecore_idler_del(g_language_changed_event_idler); - g_language_changed_event_idler = nullptr; + if (nullptr != g_language_changed_event_invoker) { + void *params = ecore_timer_del(g_language_changed_event_invoker); + g_language_changed_event_invoker = nullptr; release_language_changed_cb_params(static_cast(params)); } } @@ -216,12 +216,12 @@ static void notify_language_changed(const char* before_lang, const char* current params->current_lang = strdup(current_lang); delete_language_changed_event_invoker(); - g_engine_changed_event_idler = ecore_idler_add(notify_language_changed_event_by_idler, static_cast(params)); + g_language_changed_event_invoker = ecore_timer_add(0.0, notify_language_changed_event_by_invoker, static_cast(params)); } -static Eina_Bool notify_enabled_changed_event_by_idler(void *data) +static Eina_Bool notify_enabled_changed_event_by_invoker(void *data) { - SLOG(LOG_INFO, vc_config_tag(), "[INFO] Invoke enabled changed callback by idler"); + SLOG(LOG_INFO, vc_config_tag(), "[INFO] Invoke enabled changed callback asynchronously"); bool *enable = static_cast(data); [&enable]() { if (nullptr == enable) { @@ -247,15 +247,15 @@ static Eina_Bool notify_enabled_changed_event_by_idler(void *data) }(); free(enable); - g_enabled_changed_event_idler = nullptr; + g_enabled_changed_event_invoker = nullptr; return EINA_FALSE; } static inline void delete_enabled_changed_event_invoker() { - if (nullptr != g_enabled_changed_event_idler) { - void *param = ecore_idler_del(g_enabled_changed_event_idler); - g_enabled_changed_event_idler = nullptr; + if (nullptr != g_enabled_changed_event_invoker) { + void *param = ecore_timer_del(g_enabled_changed_event_invoker); + g_enabled_changed_event_invoker = nullptr; free(static_cast(param)); } } @@ -271,7 +271,7 @@ static void notify_enabled_changed(bool enable) } delete_enabled_changed_event_invoker(); - g_engine_changed_event_idler = ecore_idler_add(notify_enabled_changed_event_by_idler, static_cast(param)); + g_enabled_changed_event_invoker = ecore_timer_add(0.0, notify_enabled_changed_event_by_invoker, static_cast(param)); } static int initialize_config_info() -- 2.7.4