GError *error = NULL;
muse_server_h ms = ms_get_instance();
+ ms_connection_t *connection = NULL;
+
LOGD("Enter %p", m);
muse_return_val_if_fail(ms, FALSE);
muse_return_val_if_fail(ms_is_server_ready(), FALSE);
muse_return_val_if_fail(muse_server_module_is_valid(m), FALSE);
+ connection = ms->connection;
+ muse_return_val_if_fail(connection, FALSE);
+
+ ms_connection_lock(connection);
+
SECURE_LOGD("[PID %d module %p] module's msg channel fd : %d", m->pid, m, m->ch[MUSE_CHANNEL_MSG].sock_fd);
thread = g_thread_try_new(MSG_THREAD_NAME, _ms_ipc_dispatch_worker, (gpointer)m, &error);
LOGE("[module %p] thread creation failed : %s", m, error->message);
g_error_free(error);
ms_log_process_info(ms->pid);
+ ms_connection_unlock(connection);
return FALSE;
}
LOGD("Leave module %p thread %p", m, thread);
+ ms_connection_unlock(connection);
+
return TRUE;
}