diff options
author | YoungHun Kim <yh8004.kim@samsung.com> | 2019-09-23 13:49:21 +0900 |
---|---|---|
committer | YoungHun Kim <yh8004.kim@samsung.com> | 2019-09-25 10:32:44 +0900 |
commit | 71e91d6b58501beaa290ea23b5577b449dc3a9e1 (patch) | |
tree | 7c42d92ec44efa772fc5c33f5653604747ec52fc | |
parent | 04910ff4be7ac498e0d3e289bcdf09269cd1999c (diff) | |
download | mmsvc-core-71e91d6b58501beaa290ea23b5577b449dc3a9e1.tar.gz mmsvc-core-71e91d6b58501beaa290ea23b5577b449dc3a9e1.tar.bz2 mmsvc-core-71e91d6b58501beaa290ea23b5577b449dc3a9e1.zip |
Add workqueue job after confirming that the module is validsubmit/tizen/20190925.015442accepted/tizen/unified/20190925.220406
Change-Id: Iec473889224723e137fe4bb5a347cb386a6177be
-rw-r--r-- | packaging/mused.spec | 2 | ||||
-rw-r--r-- | server/include/muse_server.h | 1 | ||||
-rw-r--r-- | server/src/muse_server.c | 12 | ||||
-rw-r--r-- | server/src/muse_server_ipc.c | 6 | ||||
-rw-r--r-- | server/src/muse_server_private.c | 2 | ||||
-rw-r--r-- | server/src/muse_server_workqueue.c | 1 |
6 files changed, 15 insertions, 9 deletions
diff --git a/packaging/mused.spec b/packaging/mused.spec index 79943a6..aba247d 100644 --- a/packaging/mused.spec +++ b/packaging/mused.spec @@ -1,6 +1,6 @@ Name: mused Summary: A multimedia daemon -Version: 0.3.89 +Version: 0.3.90 Release: 0 Group: System/Libraries License: Apache-2.0 and BSD-3-Clause diff --git a/server/include/muse_server.h b/server/include/muse_server.h index 304b9ce..1a63b19 100644 --- a/server/include/muse_server.h +++ b/server/include/muse_server.h @@ -42,6 +42,7 @@ int muse_server_module_get_data_fd(muse_module_h m); char *muse_server_module_get_msg(muse_module_h m); void muse_server_set_user_data(muse_module_h m, void *data); void *muse_server_get_user_data(muse_module_h m); +bool muse_server_module_is_valid(muse_module_h m); /* ipc */ int muse_server_ipc_get_bufmgr(tbm_bufmgr *bufmgr); diff --git a/server/src/muse_server.c b/server/src/muse_server.c index f6a87aa..bb6c7dd 100644 --- a/server/src/muse_server.c +++ b/server/src/muse_server.c @@ -48,7 +48,6 @@ int muse_server_module_get_value(muse_module_h m, const char *name, int *value) gpointer ptr; muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); - muse_return_val_if_fail(m->pid > 0, MM_ERROR_INVALID_ARGUMENT); muse_return_val_if_fail(name, MM_ERROR_INVALID_ARGUMENT); muse_return_val_if_fail(value, MM_ERROR_INVALID_ARGUMENT); @@ -61,21 +60,18 @@ int muse_server_module_get_value(muse_module_h m, const char *name, int *value) int muse_server_module_get_msg_fd(muse_module_h m) { muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); - muse_return_val_if_fail(m->pid > 0, MM_ERROR_INVALID_ARGUMENT); return m->ch[MUSE_CHANNEL_MSG].sock_fd; } int muse_server_module_get_data_fd(muse_module_h m) { muse_return_val_if_fail(m, MM_ERROR_INVALID_ARGUMENT); - muse_return_val_if_fail(m->pid > 0, MM_ERROR_INVALID_ARGUMENT); return m->ch[MUSE_CHANNEL_DATA].sock_fd; } char *muse_server_module_get_msg(muse_module_h m) { muse_return_val_if_fail(m, NULL); - muse_return_val_if_fail(m->pid > 0, NULL); return (m->recv_msg + m->msg_offset); } @@ -91,6 +87,14 @@ void *muse_server_get_user_data(muse_module_h m) return m->user_data; } +bool muse_server_module_is_valid(muse_module_h m) +{ + muse_return_val_if_fail(m, false); + muse_return_val_if_fail(m->pid > 0, false); + + return true; +} + /* ipc */ int muse_server_ipc_get_bufmgr(tbm_bufmgr *bufmgr) { diff --git a/server/src/muse_server_ipc.c b/server/src/muse_server_ipc.c index 1bb1030..37e79a6 100644 --- a/server/src/muse_server_ipc.c +++ b/server/src/muse_server_ipc.c @@ -429,9 +429,9 @@ gboolean ms_ipc_job_function(ms_workqueue_job_t *job) muse_return_val_if_fail(ms_is_server_ready(), FALSE); m = (muse_module_h)job->user_data; - muse_return_val_if_fail(m, FALSE); + muse_return_val_if_fail(muse_server_module_is_valid(m), FALSE); - SECURE_LOGD("[%p] module's msg channel fd : %d", m, m->ch[MUSE_CHANNEL_MSG].sock_fd); + SECURE_LOGD("[PID %d %p] module's msg channel fd : %d", m->pid, m, m->ch[MUSE_CHANNEL_MSG].sock_fd); m->ch[MUSE_CHANNEL_MSG].thread = g_thread_try_new(MSG_THREAD_NAME, _ms_ipc_dispatch_worker, (gpointer)m, &error); if (!m->ch[MUSE_CHANNEL_MSG].thread && error) { @@ -459,7 +459,7 @@ gboolean ms_ipc_data_job_function(ms_workqueue_job_t *job) muse_return_val_if_fail(ms_is_server_ready(), FALSE); m = (muse_module_h)job->user_data; - muse_return_val_if_fail(m, FALSE); + muse_return_val_if_fail(muse_server_module_is_valid(m), FALSE); 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 && error) { diff --git a/server/src/muse_server_private.c b/server/src/muse_server_private.c index be05805..003dd88 100644 --- a/server/src/muse_server_private.c +++ b/server/src/muse_server_private.c @@ -385,7 +385,7 @@ static gboolean _ms_connection_handler(GIOChannel *source, GIOCondition conditio job->job_function = job_functions[channel]; job->user_data = m; - if (ms_is_server_ready()) + if (ms_is_server_ready() && muse_server_module_is_valid(m)) ms_workqueue_add_job(muse_server->workqueue, job); else free(job); diff --git a/server/src/muse_server_workqueue.c b/server/src/muse_server_workqueue.c index ef90e6e..416cc9f 100644 --- a/server/src/muse_server_workqueue.c +++ b/server/src/muse_server_workqueue.c @@ -128,6 +128,7 @@ void ms_workqueue_deinit(ms_workqueue_t *workqueue) void ms_workqueue_add_job(ms_workqueue_t *workqueue, ms_workqueue_job_t *job) { muse_return_if_fail(workqueue); + muse_return_if_fail(job); pthread_mutex_lock(&workqueue->jobs_mutex); LL_ADD(job, workqueue->waiting_jobs); |