From: YoungHun Kim Date: Mon, 9 Dec 2024 04:21:57 +0000 (+0900) Subject: Use timer instead of idle callback X-Git-Tag: accepted/tizen/9.0/unified/20241224.150105^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cea59b33ce5340ae43e899edee162f7b3cf4da4a;p=platform%2Fcore%2Fmultimedia%2Fmmsvc-core.git Use timer instead of idle callback - Add the log to debug muse server is not ready. - Terminate on ready file creation failure. - Update ms_deinit() and LOG_TAG also. Change-Id: Id5f946f2b59efe41e561f79eb67b1b32728c722d (cherry picked from commit ae6dc24b6c084e23fd21968d1e815a368e48d587) --- diff --git a/client/src/muse_client.c b/client/src/muse_client.c index 308ea681..bd6d2706 100644 --- a/client/src/muse_client.c +++ b/client/src/muse_client.c @@ -26,7 +26,7 @@ #ifdef LOG_TAG #undef LOG_TAG #endif -#define LOG_TAG "MUSED_CLIENT" +#define LOG_TAG "MUSE_CLIENT" static GMutex mc_mutex; static GHashTable *mc_table; diff --git a/core/include/muse_core_internal.h b/core/include/muse_core_internal.h index 46371f71..4b267800 100644 --- a/core/include/muse_core_internal.h +++ b/core/include/muse_core_internal.h @@ -52,7 +52,7 @@ extern "C" { #ifdef LOG_TAG #undef LOG_TAG #endif -#define LOG_TAG "MUSED_CORE" +#define LOG_TAG "MUSE_CORE" #define CONFFILE SYSCONFDIR"/multimedia/mused.conf" #define MUSE_HOST "muse:hosts" diff --git a/packaging/mused.spec b/packaging/mused.spec index f00276eb..60cca74d 100644 --- a/packaging/mused.spec +++ b/packaging/mused.spec @@ -1,6 +1,6 @@ Name: mused Summary: A multimedia daemon -Version: 0.4.9 +Version: 0.4.10 Release: 0 Group: System/Libraries License: Apache-2.0 diff --git a/server/include/muse_server_private.h b/server/include/muse_server_private.h index e5a8b63c..00d78e81 100644 --- a/server/include/muse_server_private.h +++ b/server/include/muse_server_private.h @@ -49,7 +49,7 @@ extern "C" { #ifdef LOG_TAG #undef LOG_TAG #endif -#define LOG_TAG "MUSED_SERVER" +#define LOG_TAG "MUSE_SERVER" #define MSG_KEY_PID "pid" #define MS_TIMEOUT_SEC 1 #define MS_TIMEOUT_MSEC MS_TIMEOUT_SEC * 1000 @@ -82,6 +82,7 @@ typedef struct _muse_server { int stop; int retval; int pid; + guint timeout_id; gboolean daemonize; tbm_bufmgr bufmgr; GMainLoop *main_loop; diff --git a/server/src/muse_server_private.c b/server/src/muse_server_private.c index a98de326..ef74ed2d 100644 --- a/server/src/muse_server_private.c +++ b/server/src/muse_server_private.c @@ -44,6 +44,7 @@ #define MUSE_LWIPC_WAIT_TIME 1000 #endif +#define MUSE_TIMER_INTERVAL 10 static const char *channel_name[MUSE_CHANNEL_MAX] = { "msg", @@ -78,7 +79,8 @@ static void _ms_unlock_state(void); static gboolean _ms_connection_handler(GIOChannel *source, GIOCondition condition, gpointer data); static void _ms_diag_init(void); static void _ms_diag_deinit(void); -static gboolean _ms_idle_cb(gpointer data); +static gboolean _ms_timer_cb(gpointer data); +static void _ms_remove_timeout_id(gpointer data); static int _ms_open_lockfile(void); static void _ms_process_init(void); static void _ms_launch_foreground(void); @@ -297,7 +299,9 @@ static gboolean _ms_connection_handler(GIOChannel *source, GIOCondition conditio _ms_lock_state(); if (muse_server->state != MUSE_SERVER_STATE_READY) { - LOGW("Now mused state is not ready..."); + muse_core_get_cur_time(&muse_server->tv, NULL); + muse_core_change_time_format((int)muse_server->tv.tv_sec, time_buf); + LOGW("Now (%s) mused state is not ready... [%d]", time_buf, muse_server->state); goto out; } @@ -597,13 +601,17 @@ static void _ms_diag_deinit(void) d->msg_aq = NULL; } -static gboolean _ms_idle_cb(gpointer data) +static gboolean _ms_timer_cb(gpointer data) { struct timespec tv; char time_buf[MUSE_MSG_TIME_LEN]; - if (!ms_create_ready_file()) + LOGW("Enter"); + + if (!ms_create_ready_file()) { LOGE("%s file creation is failed", MUSE_SERVER_READY); + ms_terminate(SIGABRT); + } _ms_diag_init(); @@ -618,6 +626,12 @@ static gboolean _ms_idle_cb(gpointer data) return G_SOURCE_REMOVE; } +static void _ms_remove_timeout_id(gpointer data) +{ + LOGW("Timeout id %u is removed", muse_server->timeout_id); + muse_server->timeout_id = 0; +} + static void _ms_init(void) { int idx; @@ -1097,7 +1111,7 @@ int ms_deinit(void) int retval = MUSE_ERR; int idx; - LOGD("Enter"); + LOGW("Enter"); muse_return_val_if_fail(muse_server, retval); muse_return_val_if_fail(muse_server->conf, retval); @@ -1133,9 +1147,6 @@ int ms_deinit(void) LOGE("remove %s failed", UDS_files[idx]); } - if (remove(MUSE_DEFAULT_PIDFILE) == -1) - LOGE("remove %s failed [errno : %d]", MUSE_DEFAULT_PIDFILE, errno); - for (idx = 0; idx < muse_server->conf->host_cnt; idx++) ms_module_deinit(muse_server->module[idx]); @@ -1163,7 +1174,7 @@ int ms_deinit(void) g_free(muse_server); muse_server = NULL; - LOGD("Leave"); + LOGW("Leave"); return retval; } @@ -1256,11 +1267,21 @@ void ms_run(void) muse_return_if_fail(muse_server->main_loop); - muse_return_if_fail(g_idle_add_full(G_PRIORITY_HIGH, _ms_idle_cb, NULL, NULL) > 0); + muse_server->timeout_id = g_timeout_add_full(G_PRIORITY_HIGH, MUSE_TIMER_INTERVAL, _ms_timer_cb, NULL, _ms_remove_timeout_id); + if (muse_server->timeout_id == 0) { + LOGE("g_timeout_add_seconds_full() is failed"); + return; + } + + LOGW("g_main_loop_run"); - LOGI("g_main_loop_run"); g_main_loop_run(muse_server->main_loop); + if (muse_server->timeout_id > 0) + g_source_remove(muse_server->timeout_id); + + g_main_loop_unref(muse_server->main_loop); + LOGW("Leave"); } @@ -1405,7 +1426,8 @@ gboolean ms_is_server_ready(void) gboolean ms_create_ready_file(void) { - LOGD("Enter"); + LOGW("Enter"); + #ifndef MUSE_USE_LWIPC int ready_fd; #endif @@ -1431,7 +1453,8 @@ gboolean ms_create_ready_file(void) return FALSE; } #endif - LOGD("Leave"); + + LOGW("Leave"); return TRUE; diff --git a/server/src/muse_server_system.c b/server/src/muse_server_system.c index 493919eb..ceadef7a 100644 --- a/server/src/muse_server_system.c +++ b/server/src/muse_server_system.c @@ -404,7 +404,7 @@ void ms_system_stat_detach(ms_system_t *system) { muse_return_if_fail(system); - LOGI("remove stat id %u", system->st.id); + LOGW("remove stat id %u", system->st.id); if (system->st.id == 0) return;