Call shutdown command explicitly to release client resources in signal handler 42/228142/5 accepted/tizen/unified/20200321.043816 submit/tizen/20200320.024643
authorYoungHun Kim <yh8004.kim@samsung.com>
Thu, 19 Mar 2020 08:05:13 +0000 (17:05 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Fri, 20 Mar 2020 01:03:32 +0000 (10:03 +0900)
Change-Id: I8112fc27468dc15a194755e8f2020d9bc879fd88

packaging/mused.spec
server/src/muse_server_signal.c

index f065290..52d1391 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mused
 Summary:    A multimedia daemon
-Version:    0.3.103
+Version:    0.3.104
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index fac02a4..776d800 100644 (file)
@@ -101,10 +101,8 @@ static void _ms_signal_backtrace(void *arg)
 
        uctxt = (ucontext_t *)arg;
 
-       if (!uctxt) {
-               LOGE("Error - null uctxt");
-               return;
-       }
+       muse_return_if_fail(uctxt);
+
        #if defined(REG_EIP)
        trace[1] = (void *) uctxt->uc_mcontext.gregs[REG_EIP];
        #elif defined(REG_RIP)
@@ -140,8 +138,21 @@ static void _ms_signal_backtrace(void *arg)
 
 static void _ms_signal_sigaction(int signo, siginfo_t *si, void *arg)
 {
+       ms_cmd_dispatcher_info_t dispatch;
+       ms_connection_t *connection = NULL;
+       GQueue *queue = NULL;
+
        muse_return_if_fail(si);
        muse_return_if_fail(arg);
+       muse_return_if_fail(ms_get_instance());
+
+       connection = ms_get_instance()->connection;
+
+       if (connection) {
+               queue = connection->instance_queue;
+               dispatch.cmd = MUSE_MODULE_COMMAND_SHUTDOWN;
+               g_queue_foreach(queue, ms_cmd_dispatch_foreach_func, (gpointer)&dispatch);
+       }
 
        ms_remove_ready_file();