Remove unsafe call of ecore idler 27/219527/1
authorKrzysztof Wieclaw <k.wieclaw@samsung.com>
Thu, 5 Dec 2019 12:05:00 +0000 (13:05 +0100)
committerKrzysztof Wieclaw <k.wieclaw@samsung.com>
Thu, 5 Dec 2019 12:05:00 +0000 (13:05 +0100)
Change-Id: I8c8b19bed096c7833e99b6e0d31430ac688f543a
Signed-off-by: Krzysztof Wieclaw <k.wieclaw@samsung.com>
setting-storage/src/setting-storage-async-worker.c

index 0b56b532dc9d4cc972cb61fbc8fe451ca1aaaa3e..fc81f2b0dc2dc03e8bb1088199d351d638aa491c 100644 (file)
@@ -29,8 +29,6 @@ typedef struct {
        int fn_ret;
        callback_fn cb;
        SettingStorage *ad;
-
-       Ecore_Idler *worker_idler;
 } storage_worker;
 
 static GHashTable *storage_worker_hashT;
@@ -48,13 +46,13 @@ void storage_thread_testcancel()
        }
 }
 
-static Eina_Bool _async_worker_idler(void *data)
+static void _async_worker_idler(void *data)
 {
        SETTING_TRACE_BEGIN;
        SETTING_TRACE("------------------------------------thread join BEGIN ");
        storage_worker *worker = data;
 
-       retv_if(NULL == data, ECORE_CALLBACK_CANCEL);
+       ret_if(NULL == data);
 
        pthread_join(worker->tid, NULL);
        worker->alive = FALSE;
@@ -66,7 +64,6 @@ static Eina_Bool _async_worker_idler(void *data)
 
        SETTING_TRACE("------------------------------------thread join END ");
        SETTING_TRACE_END;
-       return ECORE_CALLBACK_CANCEL;
 }
 
 static void *_async_worker_thread(void *data)
@@ -86,16 +83,7 @@ static void *_async_worker_thread(void *data)
 
        storage_STOP_POINT;
 
-       worker->worker_idler = ecore_idler_add(_async_worker_idler, worker);
-       if (worker->worker_idler == NULL) {
-               SETTING_TRACE_ERROR("worker->worker_idler == NULL");
-               worker->alive = FALSE;
-               /*----------------------------------- */
-               /* work around */
-               /*----------------------------------- */
-               _async_worker_idler(worker);
-
-       }
+       ecore_main_loop_thread_safe_call_async(_async_worker_idler, worker);
        pthread_exit(NULL);
 }
 
@@ -108,9 +96,6 @@ static void _async_worker_hash_free_key(gpointer data)
                pthread_join(worker->tid, NULL);
        }
 
-       if (worker->worker_idler)
-               ecore_idler_del(worker->worker_idler);
-
        free(worker);
 }