Use thread instead of ecore time 64/144664/4
authorWonnam Jang <wn.jang@samsung.com>
Thu, 17 Aug 2017 10:23:04 +0000 (19:23 +0900)
committerWonnam Jang <wn.jang@samsung.com>
Mon, 21 Aug 2017 01:08:59 +0000 (10:08 +0900)
Change-Id: I0f043182067478e8ab804a899eccb84a325e0de5
Signed-off-by: Wonnam Jang <wn.jang@samsung.com>
client/vc_mgr.c

index fa15f7d..eb5e8e9 100644 (file)
@@ -313,19 +313,49 @@ static Eina_Bool __vc_mgr_connect_daemon(void *data)
        return EINA_FALSE;
 }
 
-static Eina_Bool __vc_mgr_prepare_daemon(void *data)
+static void __start_prepare_thread(void *data, Ecore_Thread *thread)
 {
+       SLOG(LOG_ERROR, TAG_VCM, "===== Start prepare thread");
+       int ret = 1, retry_count = 0;
+
        /* Send hello */
-       if (0 != vc_mgr_dbus_request_hello()) {
-               return EINA_TRUE;
+       while (ret) {
+
+               if (retry_count == 10) {
+                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request hello !!");
+                       return;
+               }
+
+               ret = vc_mgr_dbus_request_hello();
+               if (ret == 0) {
+                       SLOG(LOG_DEBUG, TAG_VCM, "Success to request hello. retry count(%d)", retry_count);
+                       break;
+               } else {
+                       retry_count++;
+               }
        }
 
-       g_m_connect_timer = NULL;
-       SLOG(LOG_DEBUG, TAG_VCM, "===== [Manager] Connect daemon");
+       ret = 1;
+       retry_count = 0;
 
-       g_m_connect_timer = ecore_idler_add(__vc_mgr_connect_daemon, data);
+       while (ret) {
+               if (retry_count == 10) {
+                       SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to connect daemon !!");
+                       return;
+               }
+               ret = __vc_mgr_connect_daemon(NULL);
+               if (ret == 0)
+                       break;
+               else
+                       retry_count++;
+       }
 
-       return EINA_FALSE;
+       return;
+}
+
+static void __end_prepare_thread(void *data, Ecore_Thread *thread)
+{
+       SLOG(LOG_DEBUG, TAG_VCM, "===== End prepare thread");
 }
 
 int vc_mgr_prepare()
@@ -348,7 +378,7 @@ int vc_mgr_prepare()
                return VC_ERROR_INVALID_STATE;
        }
 
-       g_m_connect_timer = ecore_timer_add(0, __vc_mgr_prepare_daemon, NULL);
+       ecore_thread_run(__start_prepare_thread, __end_prepare_thread, NULL, NULL);
 
        SLOG(LOG_DEBUG, TAG_VCM, "=====");
        SLOG(LOG_DEBUG, TAG_VCM, " ");