From: Sangyoon Jang Date: Wed, 30 Jan 2019 09:37:16 +0000 (+0900) Subject: Use GMutex for portability X-Git-Tag: accepted/tizen/5.0/unified/20190130.151743~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fapi%2Fpackage-manager.git;a=commitdiff_plain;h=8bc6d649c89e0279d1896fa1589742f99543ff66 Use GMutex for portability Change-Id: Ic188fff1fd1eced401a6554768c51c731d15b587 Signed-off-by: Sangyoon Jang --- diff --git a/src/package_manager.c b/src/package_manager.c index 2e818d3..dec09cd 100644 --- a/src/package_manager.c +++ b/src/package_manager.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include @@ -51,7 +50,7 @@ struct package_manager_s { GHashTable *event_info_table; package_manager_event_cb event_cb; void *user_data; - pthread_mutex_t mutex; + GMutex mutex; }; struct package_manager_request_s { @@ -1003,8 +1002,7 @@ API int package_manager_create(package_manager_h *manager) } package_manager->handle_id = package_manager_new_id(); - if (pthread_mutex_init(&package_manager->mutex, NULL)) - _LOGE("pthread_mutex_init failed"); + g_mutex_init(&package_manager->mutex); *manager = package_manager; @@ -1028,7 +1026,7 @@ API int package_manager_destroy(package_manager_h manager) NULL); } - pthread_mutex_destroy(&manager->mutex); + g_mutex_clear(&manager->mutex); pkgmgr_client_free(manager->pc); g_hash_table_destroy(manager->event_info_table); free(manager); @@ -1081,7 +1079,7 @@ static int internal_callback(uid_t target_uid, int req_id, const char *pkg_type, return PACKAGE_MANAGER_ERROR_NONE; if (manager && manager->event_info_table) { - pthread_mutex_lock(&manager->mutex); + g_mutex_lock(&manager->mutex); info = g_hash_table_lookup(manager->event_info_table, pkg_name); } else { _LOGE("invalid handle"); @@ -1091,7 +1089,7 @@ static int internal_callback(uid_t target_uid, int req_id, const char *pkg_type, if (!info) { if (strcasecmp(key, "start") != 0) { _LOGD("unexpected signal or no info(removed)"); - pthread_mutex_unlock(&manager->mutex); + g_mutex_unlock(&manager->mutex); return PACKAGE_MANAGER_ERROR_NONE; } } @@ -1099,7 +1097,7 @@ static int internal_callback(uid_t target_uid, int req_id, const char *pkg_type, if (strcasecmp(key, "start") == 0) { ret = package_manager_get_event_type(val, &event_type); if (ret != PACKAGE_MANAGER_ERROR_NONE) { - pthread_mutex_unlock(&manager->mutex); + g_mutex_unlock(&manager->mutex); return PACKAGE_MANAGER_ERROR_INVALID_PARAMETER; } @@ -1159,7 +1157,7 @@ static int internal_callback(uid_t target_uid, int req_id, const char *pkg_type, g_hash_table_remove(manager->event_info_table, info->pkg_name); } - pthread_mutex_unlock(&manager->mutex); + g_mutex_unlock(&manager->mutex); return PACKAGE_MANAGER_ERROR_NONE; } @@ -1264,9 +1262,9 @@ API int package_manager_unset_event_cb(package_manager_h manager) manager->event_cb = NULL; manager->user_data = NULL; - pthread_mutex_lock(&manager->mutex); + g_mutex_lock(&manager->mutex); g_hash_table_remove_all(manager->event_info_table); - pthread_mutex_unlock(&manager->mutex); + g_mutex_unlock(&manager->mutex); retval = pkgmgr_client_remove_listen_status(manager->pc); if (retval == PKGMGR_R_EINVAL)