GError *error = NULL;
muse_server_h ms = ms_get_instance();
- LOGD("Enter");
+ LOGD("Enter %p", m);
muse_return_val_if_fail(ms, FALSE);
muse_return_val_if_fail(ms_is_server_ready(), FALSE);
{
GError *error = NULL;
muse_server_h ms = ms_get_instance();
+ ms_connection_t *connection = NULL;
- LOGD("Enter");
+ 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), TRUE);
+ connection = ms->connection;
+ muse_return_val_if_fail(connection, FALSE);
+
+ ms_connection_lock(connection);
+
m->ch[MUSE_CHANNEL_DATA].thread = g_thread_try_new(DATA_THREAD_NAME, _ms_ipc_data_worker, (gpointer)m, &error);
if (!m->ch[MUSE_CHANNEL_DATA].thread) {
LOGE("thread creation failed : %s", error->message);
ms_log_process_info(ms->pid);
ms_cmd_dispatch(m, MUSE_MODULE_COMMAND_RESOURCE_NOT_AVAILABLE);
muse_core_connection_close(m->ch[MUSE_CHANNEL_MSG].sock_fd);
+ ms_connection_unlock(connection);
+ return FALSE;
}
- muse_return_val_if_fail(m->ch[MUSE_CHANNEL_DATA].thread, FALSE);
+ LOGD("Leave %p", m);
+
+ ms_connection_unlock(connection);
- LOGD("Leave");
return TRUE;
}