From 34a1a3efa26ad4303e89de8fc07952dd62741209 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Tue, 29 Nov 2022 20:02:00 +0900 Subject: [PATCH] Make critical section for g_ino_list using std::mutex - 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 --- common/vc_config_mgr.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/common/vc_config_mgr.cpp b/common/vc_config_mgr.cpp index 8c5f8cc..404d293 100644 --- a/common/vc_config_mgr.cpp +++ b/common/vc_config_mgr.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #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 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 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; } -- 2.34.1