Make critical section for g_ino_list using std::mutex 01/286201/1
authorSuyeon Hwang <stom.hwang@samsung.com>
Tue, 29 Nov 2022 11:02:00 +0000 (20:02 +0900)
committerSuyeon Hwang <stom.hwang@samsung.com>
Fri, 30 Dec 2022 04:37:34 +0000 (13:37 +0900)
- Requirement:
Simpler code for making critical section is needed to increase
readbility.

- Content:
This patch changes the critical section tool from pthread_mutex to CPP
standard library mutext. Through this patch, we can easily handle the
critical section of g_ino_list.

Change-Id: I1bb59561ed2ea86bf0db8b38718abdf6716e2987
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
common/vc_config_mgr.cpp

index 8c5f8cc..404d293 100644 (file)
@@ -26,6 +26,7 @@
 #include <vconf.h>
 #include <vconf-internal-keys.h>
 #include <buxton2.h>
+#include <mutex>
 
 #include "vc_config_mgr.h"
 #include "vc_config_parser.h"
@@ -33,6 +34,9 @@
 #include "vc_main.h"
 #include "voice_control_command.h"
 
+
+using namespace std;
+
 #define EVENT_SIZE  (sizeof(struct inotify_event))
 #define BUF_LEN     (EVENT_SIZE + 16)
 
@@ -79,10 +83,10 @@ static Ecore_Fd_Handler* g_fd_handler_lang = NULL;
 static int g_fd_lang = -1;
 static int g_wd_lang = -1;
 
-static GList* g_ino_list = NULL;
+static GList* g_ino_list = nullptr;
+static mutex g_ino_list_mutex;
 
 static pthread_mutex_t vc_config_mgr_mutex = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t vc_config_engine_mutex = PTHREAD_MUTEX_INITIALIZER;
 
 static int __vc_config_mgr_register_engine_config_updated_event(const char* path);
 static int __vc_config_mgr_unregister_engine_config_updated_event();
@@ -621,16 +625,15 @@ static int __vc_config_mgr_register_engine_config_updated_event(const char* path
                SLOG(LOG_WARN, vc_config_tag(), "[WARNING] Fail to set non-block mode");
        }
 
-       pthread_mutex_lock(&vc_config_engine_mutex);
+       unique_lock<mutex> lock(g_ino_list_mutex);
        g_ino_list = g_list_append(g_ino_list, ino);
-       pthread_mutex_unlock(&vc_config_engine_mutex);
 
        return VC_ERROR_NONE;
 }
 
 static int __vc_config_mgr_unregister_engine_config_updated_event()
 {
-       pthread_mutex_lock(&vc_config_engine_mutex);
+       unique_lock<mutex> lock(g_ino_list_mutex);
 
        /* delete all inotify variable */
        if (0 < g_list_length(g_ino_list)) {
@@ -653,7 +656,6 @@ static int __vc_config_mgr_unregister_engine_config_updated_event()
                        iter = g_list_first(g_ino_list);
                }
        }
-       pthread_mutex_unlock(&vc_config_engine_mutex);
        return VC_ERROR_NONE;
 }