const char *UDS_files[MUSE_CHANNEL_MAX] = {MUSE_SOCK_FILE0, MUSE_SOCK_FILE1};
+static gboolean _muse_client_table_remove_func(gpointer key, gpointer value, gpointer user_data);
static void _muse_client_sigaction(int signo, siginfo_t *siginfo, void *context);
static void _muse_client_constructor(void) __attribute__((constructor));
static int _muse_client_new(muse_channel_e channel);
static void _muse_client_table_new(void);
static gpointer _muse_client_get_fd_ptr(int sock_fd);
-static gboolean _muse_client_table_remove_func(gpointer key, gpointer value, gpointer user_data);
static gboolean _muse_client_table_remove_func(gpointer key, gpointer value, gpointer user_data)
{
g_return_val_if_fail(key, false);
g_return_val_if_fail(buf, false);
- g_return_val_if_fail(m_type >= MUSE_TYPE_INT && m_type < MUSE_TYPE_MAX, FALSE);
+ g_return_val_if_fail(m_type >= MUSE_TYPE_INT && m_type < MUSE_TYPE_MAX, false);
g_return_val_if_fail(data, false);
jobj = _muse_core_msg_json_tokener_parse_len(buf, parse_len, err);
return FALSE;
}
- muse_server_state_unlock();
-
server_sockfd = g_io_channel_unix_get_fd(source);
client_len = sizeof(client_address);
if (client_sockfd == MUSE_ERR) {
strerror_r(errno, err_msg, MUSE_MAX_MSG_LEN);
LOGE("[Critical Error : %d] accept failure : %s", errno, err_msg);
+ muse_server_state_unlock();
muse_server_respawn(SIGABRT);
return FALSE;
}
muse_server_workqueue_get_instance()->add_job(job);
+ muse_server_state_unlock();
+
LOGI("Leave");
return TRUE;
out:
MUSE_FREE(module);
MUSE_FREE(job);
+ muse_server_state_unlock();
+
LOGE("FALSE");
return FALSE;
}
int used_pss_mb = muse_server_system_get_instance()->get_memory_info(pid);
char err_msg[MUSE_MAX_MSG_LEN] = {'\0',};
+ muse_server_state_lock();
+
if (g_queue_is_empty(muse_server_ipc_get_instance()->module_queue) && server->state != MUSE_SERVER_STATE_IDLE) {
if (used_pss_mb > muse_server_config_get_instance()->memory_threshold) {
-
- muse_server_state_lock();
server->state = MUSE_SERVER_STATE_IDLE;
- muse_server_state_unlock();
-
muse_server_log_process_info(pid);
snprintf(err_msg, sizeof(err_msg), "[Memory Leak] %d > %d",
used_pss_mb, muse_server_config_get_instance()->memory_threshold);
LOGE("%s", err_msg);
+ muse_server_state_unlock();
muse_server_respawn(SIGTERM);
}
}
+
+ muse_server_state_unlock();
}
static int _muse_server_thread_kill(int signo)