int fn_ret;
callback_fn cb;
SettingStorage *ad;
-
- Ecore_Idler *worker_idler;
} storage_worker;
static GHashTable *storage_worker_hashT;
}
}
-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;
SETTING_TRACE("------------------------------------thread join END ");
SETTING_TRACE_END;
- return ECORE_CALLBACK_CANCEL;
}
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);
}
pthread_join(worker->tid, NULL);
}
- if (worker->worker_idler)
- ecore_idler_del(worker->worker_idler);
-
free(worker);
}