Use GMutex for portability 52/198852/1
authorSangyoon Jang <jeremy.jang@samsung.com>
Wed, 30 Jan 2019 09:37:16 +0000 (18:37 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Wed, 30 Jan 2019 09:37:16 +0000 (18:37 +0900)
Change-Id: Ic188fff1fd1eced401a6554768c51c731d15b587
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/package_manager.c

index 2e818d3..dec09cd 100644 (file)
@@ -18,7 +18,6 @@
 #include <string.h>
 #include <glib.h>
 #include <unistd.h>
-#include <pthread.h>
 
 #include <package-manager.h>
 #include <pkgmgr_installer.h>
@@ -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)