void ms_deinit_bufmgr(void);
void ms_cmd_dispatch_foreach_func(gpointer data, gpointer user_data);
void ms_set_state(ms_state_e state);
+gboolean ms_is_server_ready(void);
void ms_set_running(gboolean value);
gboolean ms_is_running(void);
muse_return_val_if_fail(muse_server->watchdog, retval);
muse_return_val_if_fail(muse_server->workqueue, retval);
- muse_server->state = MUSE_SERVER_STATE_IDLE;
+ ms_set_state(MUSE_SERVER_STATE_IDLE);
#ifdef MUSE_USE_WATCHDOG
if (ms_watchdog_deinit(muse_server->watchdog) == MM_ERROR_NONE)
LOGI("[%d] Proportional set size %d (KByte)", pid, used_pss);
- if (g_queue_is_empty(connection->instance_queue) && muse_server->state != MUSE_SERVER_STATE_IDLE) {
+ if (g_queue_is_empty(connection->instance_queue) && ms_is_server_ready()) {
memory_threshold = ms_config_get_memory_threshold();
if (used_pss > memory_threshold) {
- muse_server->state = MUSE_SERVER_STATE_IDLE;
+ ms_set_state(MUSE_SERVER_STATE_IDLE);
ms_log_process_info(pid);
snprintf(err_msg, sizeof(err_msg), "[Memory Leak] %d > %d (KByte)", used_pss, memory_threshold);
g_mutex_unlock(&muse_server->state_lock);
}
+gboolean ms_is_server_ready(void)
+{
+ muse_return_val_if_fail(muse_server, FALSE);
+
+ return muse_server->state == MUSE_SERVER_STATE_READY;
+}
+
void ms_set_running(gboolean value)
{
muse_return_if_fail(muse_server);
{
ms_workqueue_worker_t *worker = (ms_workqueue_worker_t *) ptr;
ms_workqueue_job_t *job;
- char err_msg[MUSE_MSG_LEN_MAX] = {'\0',};
muse_return_val_if_fail(worker, NULL);
- while (1) {
+ while (ms_is_server_ready()) {
pthread_mutex_lock(&worker->workqueue->jobs_mutex);
if (worker->terminate) {
pthread_mutex_unlock(&worker->workqueue->jobs_mutex);
if (!job->job_function(job)) {
- snprintf(err_msg, sizeof(err_msg), "Error - Execute the workqueue job, Restart muse server...");
- LOGE("%s", err_msg);
+ LOGE("Error - Execute the workqueue job, Restart muse server...");
ms_respawn(SIGABRT);
break;
}