adds funtions to handle task id and free task 64/177864/1
authorJeonghoon Park <jh1979.park@samsung.com>
Fri, 4 May 2018 05:34:25 +0000 (14:34 +0900)
committerJeonghoon Park <jh1979.park@samsung.com>
Fri, 4 May 2018 05:34:25 +0000 (14:34 +0900)
Change-Id: Ica095ba97887df85adc92b92813d939be8c0c2aa

daemon/include/ttd-task.h
daemon/src/ttd-task.c

index 4462e97..eb7559e 100644 (file)
@@ -28,8 +28,11 @@ typedef void (*ttd_task_complete_func)(int result, void *user_data);
 
 ttd_task *ttd_task_new(int priority, ttd_task_func task_fn, void *task_data,
        ttd_task_data_free_func data_free_fn);
+int ttd_task_set_task_id(ttd_task *task, const char *id);
+const char *ttd_task_get_task_id(ttd_task *task);
 int ttd_task_set_complete_func(ttd_task *task, ttd_task_complete_func complete_fn, void *user_data);
 int ttd_task_run(ttd_task *task);
 int ttd_task_sort_func(const void *a, const void *b, void *user_data);
+void ttd_task_free(ttd_task *task);
 
 #endif /* __TT_DAEMON_TASK_H__ */
index bd69656..82103bc 100644 (file)
@@ -21,6 +21,7 @@
 struct __ttd_task {
        int priority;
        ttd_task_func task_func;
+       char *task_id;
        void *task_data;
        ttd_task_data_free_func data_free_func;
        ttd_task_complete_func complete_func;
@@ -42,6 +43,27 @@ ttd_task *ttd_task_new(int priority, ttd_task_func task_func, void *task_data,
        return task;
 }
 
+int ttd_task_set_task_id(ttd_task *task, const char *id)
+{
+       if (!task)
+               return -1;
+
+       if (task->task_id)
+               g_free(task->task_id);
+
+       task->task_id = g_strdup(id);
+
+       return 0;
+}
+
+const char *ttd_task_get_task_id(ttd_task *task)
+{
+       if (!task)
+               return NULL;
+
+       return (const char *)task->task_id;
+}
+
 int ttd_task_set_complete_func(ttd_task *task, ttd_task_complete_func complete_func, void *user_data)
 {
        if (!task)
@@ -71,6 +93,9 @@ int ttd_task_run(ttd_task *task)
        retvm_if(!task, -1, "task is NULL");
        retvm_if(!task->task_func, -1, "task_func is NULL");
 
+       if (task->task_id)
+               _D("task [%s] is running", task->task_id);
+
        ret = task->task_func(task->task_data);
 
        if (task->complete_func) {
@@ -85,3 +110,15 @@ int ttd_task_run(ttd_task *task)
 
        return 0;
 }
+
+void ttd_task_free(ttd_task *task)
+{
+       if (!task)
+               return;
+
+       if (task->task_id) {
+               _V("task [%s] is freed", task->task_id)
+               g_free(task->task_id);
+       }
+       g_free(task);
+}