Use ecore timer for config changed callbacks 84/291084/1
authorSuyeon Hwang <stom.hwang@samsung.com>
Fri, 7 Apr 2023 11:42:08 +0000 (20:42 +0900)
committerTizen AI <ai.tzn.sec@samsung.com>
Fri, 7 Apr 2023 12:27:46 +0000 (21:27 +0900)
Change-Id: I489807ea63d7d16529bcaf7ffa563b45c2635f56
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
common/vc_config_mgr.cpp

index 9fb301e..6977544 100644 (file)
@@ -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<char *>(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<char *>(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<void *>(param));
+       g_engine_changed_event_invoker = ecore_timer_add(0.0, notify_engine_changed_event_by_invoker, static_cast<void *>(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<language_changed_cb_parameters_s *>(data);
        [&params]() {
                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<language_changed_cb_parameters_s *>(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<void *>(params));
+       g_language_changed_event_invoker = ecore_timer_add(0.0, notify_language_changed_event_by_invoker, static_cast<void *>(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<bool *>(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<bool *>(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<void *>(param));
+       g_enabled_changed_event_invoker = ecore_timer_add(0.0, notify_enabled_changed_event_by_invoker, static_cast<void *>(param));
 }
 
 static int initialize_config_info()