[UI Thread] Check bundle data for service thread 30/273630/1
authorHwankyu Jhun <h.jhun@samsung.com>
Mon, 11 Apr 2022 04:29:25 +0000 (13:29 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Mon, 11 Apr 2022 04:29:25 +0000 (13:29 +0900)
To send the launch request to the service thread, aul launch checks
whether the key of the bundle data exists or not.
It the key exists, the launch request will be delivered to the global
default loop.

Change-Id: I18089f5983fa509753465868485d1c8cad9c4bfd
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/aul_launch.c

index b0b5fc5..40a78b2 100644 (file)
@@ -41,6 +41,8 @@
 
 #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
 
+#define K_SERVICE_THREAD "__K_SERVICE_THREAD"
+
 typedef struct client_channel_s {
        int fd;
        pid_t pid;
@@ -464,10 +466,13 @@ static guint __g_idle_add_full(GMainContext *context, gint priority,
        return tag;
 }
 
-static GMainContext *__get_glib_context(int cmd)
+static GMainContext *__get_glib_context(int cmd, bundle *b)
 {
        GMainContext *context;
 
+       if (b && bundle_get_type(b, K_SERVICE_THREAD) != BUNDLE_TYPE_NONE)
+               return NULL;
+
        switch (cmd) {
        case APP_START:
        case APP_START_RES:
@@ -510,7 +515,7 @@ static void __process_app_pkt(app_pkt_t *pkt, int clifd)
                return;
        }
 
-       __g_idle_add_full(__get_glib_context(pkt->cmd), G_PRIORITY_DEFAULT,
+       __g_idle_add_full(__get_glib_context(pkt->cmd, b), G_PRIORITY_DEFAULT,
                        __dispatch_request, req);
 }