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)
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();