Close IO channel before releasing it 14/246014/1
authorHwankyu Jhun <h.jhun@samsung.com>
Thu, 22 Oct 2020 05:26:40 +0000 (14:26 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Thu, 22 Oct 2020 05:26:40 +0000 (14:26 +0900)
Change-Id: I7b9b7e17d21f28c1b9944076dec197de5b3ee3a0
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/aul_worker.c

index ce16572..66611b4 100644 (file)
@@ -90,6 +90,17 @@ static void __destroy_job(gpointer data)
        struct job_s *job = (struct job_s *)data;
        GSource *source;
        GMainContext *context;
+       GError *error = NULL;
+
+       if (job->channel) {
+               g_io_channel_shutdown(job->channel, TRUE, &error);
+               if (error) {
+                       _E("g_io_channel_shutdown() is failed. error(%s)",
+                                       error->message);
+                       g_error_free(error);
+               }
+               g_io_channel_unref(job->channel);
+       }
 
        if (job->tag) {
                context = g_main_context_get_thread_default();
@@ -98,9 +109,6 @@ static void __destroy_job(gpointer data)
                        g_source_destroy(source);
        }
 
-       if (job->channel)
-               g_io_channel_unref(job->channel);
-
        free(job->name);
        free(job);
 }