Add counter to prevent infinite initialization 90/254390/1
authorSuyeon Hwang <stom.hwang@samsung.com>
Tue, 2 Mar 2021 08:05:24 +0000 (17:05 +0900)
committerSuyeon Hwang <stom.hwang@samsung.com>
Tue, 2 Mar 2021 08:05:24 +0000 (17:05 +0900)
Change-Id: Ida246c4adcc8f305eae5ab54698bb4be0dbc03e5
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
src/vc_elm_widget_wrapper.c

index b0b3fc8..21a387b 100644 (file)
@@ -35,6 +35,7 @@ struct __voice_control_wrapper_s {
 
 static struct __voice_control_wrapper_s vcw = {0, 0, 0, 0, 0, 0, 0, 0};
 static Ecore_Timer *g_initialize_timer = NULL;
+static int g_initialize_count = 0;
 #define INITIALIZE_INTERVAL_TIME 300.0
 
 static vc_h g_vc_w;
@@ -99,10 +100,16 @@ static Eina_Bool __vc_elm_widget_wrapper_initialize_timer_cb(void *data)
        int ret = -1;
        if (0 != (ret = vc_widget_initialize(&g_vc_w))) {
                VC_ELM_LOG_ERR("Fail to vc_widet_initialize, ret(%d)", ret);
+               if (MAX_RETRY_CNT == g_initialize_count) {
+                       VC_ELM_LOG_ERR("Time out to vc_widget_initialize");
+                       return EINA_FALSE;
+               }
+
                if ((int)INITIALIZE_INTERVAL_TIME != (int)ecore_timer_interval_get(g_initialize_timer) * 1000) {
                        VC_ELM_LOG_INFO("Set initializing timer to %f ms", INITIALIZE_INTERVAL_TIME);
                        ecore_timer_interval_set(g_initialize_timer, INITIALIZE_INTERVAL_TIME / 1000);
                }
+               g_initialize_count++;
                return EINA_TRUE;
        }
 
@@ -135,6 +142,7 @@ int _vc_elm_widget_wrapper_initialize()
                VC_ELM_LOG_ERR("Fail to vc_widet_initialize, ret(%d)", ret);
                if (g_initialize_timer)
                        ecore_timer_del(g_initialize_timer);
+               g_initialize_count = 0;
                g_initialize_timer = ecore_timer_add(0.0, __vc_elm_widget_wrapper_initialize_timer_cb, NULL);
                return ret;
        }