Array-based socket variable optimization 16/319616/1 accepted/tizen/unified/20241114.153907
authorYoungHun Kim <yh8004.kim@samsung.com>
Mon, 28 Oct 2024 11:52:50 +0000 (20:52 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Mon, 28 Oct 2024 22:25:56 +0000 (07:25 +0900)
Change-Id: I93aba5e2fc658d4adbb32d5faf6a55d17ae9595b

packaging/mused.spec
server/include/muse_server_private.h
server/src/muse_server_private.c

index b8ee83ed5174bd159cf7128d1555c984844f3919..ccc37a4af0daf6a41aaa76783ad89c30c2d79fa7 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mused
 Summary:    A multimedia daemon
-Version:    0.4.7
+Version:    0.4.8
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 44f0be3e74ecb89080092451ea8dbe674f092aef..e5a8b63c16c6a1ebfc7d10b31b018255319717c0 100644 (file)
@@ -78,8 +78,7 @@ typedef struct ms_diag {
 } ms_diag_t;
 
 typedef struct _muse_server {
-       int msg_fd;
-       int data_fd;
+       int fd[MUSE_CHANNEL_MAX];
        int stop;
        int retval;
        int pid;
index f979d463588ea901b4bdb69e1d5b235320f8adb1..b8422223196ccce7561c60a02faca643e128ac1c 100644 (file)
@@ -67,7 +67,6 @@ static const char *module_cmd[MUSE_MODULE_COMMAND_MAX] = {
 
 static bool _ms_register_socket_event_source(int fd, muse_module_callback connection_handler, gpointer module_idx);
 static void _ms_register_all_sockets_event_source(void);
-static void _ms_assign_msg_data_fds(int fd[]);
 static int _ms_new(muse_channel_e channel);
 static int _ms_get_pid(int fd);
 static void _ms_get_module_addr(int fd, intptr_t *module_addr);
@@ -139,37 +138,22 @@ static void _ms_register_all_sockets_event_source(void)
 {
        LOGD("Enter");
 
-       char err_msg[MUSE_MSG_LEN_MAX] = {'\0',};
-
-       if (!_ms_register_socket_event_source(muse_server->msg_fd, _ms_connection_handler, GINT_TO_POINTER(MUSE_CHANNEL_MSG))) {
-               snprintf(err_msg, sizeof(err_msg), "Fail to attach server fd %d", muse_server->msg_fd);
+       int idx = 0;
 
-               LOGE("%s", err_msg);
-               ms_terminate(SIGABRT);
-       }
+       char err_msg[MUSE_MSG_LEN_MAX] = {'\0',};
 
-       if (!_ms_register_socket_event_source(muse_server->data_fd, _ms_connection_handler, GINT_TO_POINTER(MUSE_CHANNEL_DATA))) {
-               snprintf(err_msg, sizeof(err_msg), "Fail to attach server fd %d", muse_server->data_fd);
+       for (idx = 0; idx < MUSE_CHANNEL_MAX; idx++) {
+               if (!_ms_register_socket_event_source(muse_server->fd[idx], _ms_connection_handler, GINT_TO_POINTER(idx))) {
+                       snprintf(err_msg, sizeof(err_msg), "Fail to attach server fd %d", muse_server->fd[idx]);
 
-               LOGE("%s", err_msg);
-               ms_terminate(SIGABRT);
+                       LOGE("%s", err_msg);
+                       ms_terminate(SIGABRT);
+               }
        }
 
        LOGD("Leave");
 }
 
-static void _ms_assign_msg_data_fds(int fd[])
-{
-       LOGD("Enter");
-
-       muse_return_if_fail(muse_server);
-
-       muse_server->msg_fd = fd[MUSE_CHANNEL_MSG];
-       muse_server->data_fd = fd[MUSE_CHANNEL_DATA];
-
-       LOGD("Leave");
-}
-
 static int _ms_new(muse_channel_e channel)
 {
        int fd, errsv;
@@ -1139,9 +1123,8 @@ int ms_deinit(void)
        ms_remove_ready_file();
 
        retval = muse_server->retval;
-       muse_core_fd_close(muse_server->msg_fd);
-       muse_core_fd_close(muse_server->data_fd);
        for (idx = 0; idx < MUSE_CHANNEL_MAX; idx++) {
+               muse_core_fd_close(muse_server->fd[idx]);
                if (remove(UDS_files[idx]) == MUSE_ERR)
                        LOGE("remove %s failed", UDS_files[idx]);
        }
@@ -1246,24 +1229,21 @@ void ms_check_stdin_close(void)
 
 void ms_new(void)
 {
-       int fd[MUSE_CHANNEL_MAX];
        int i, j;
 
        for (i = 0; i < MUSE_CHANNEL_MAX; i++) {
                if (ms_config_is_on_demand() && i == MUSE_CHANNEL_MSG)
-                       fd[i] = SD_LISTEN_FDS_START;
+                       muse_server->fd[i] = SD_LISTEN_FDS_START;
                else
-                       fd[i] = _ms_new(i);
+                       muse_server->fd[i] = _ms_new(i);
 
-               if (!muse_core_fd_is_valid(fd[i])) {
+               if (!muse_core_fd_is_valid(muse_server->fd[i])) {
                        LOGE("Failed to create socket server %d", i);
                        for (j = 0; j < i; j++)
-                               close(fd[j]);
+                               close(muse_server->fd[j]);
                        return;
                }
        }
-
-       _ms_assign_msg_data_fds(fd);
 }
 
 void ms_run(void)