fix assertion failed: hash_table->ref_count >0, add lock to db query 32/162432/2 accepted/tizen/unified/20171204.072245 submit/tizen/20171201.055603
authorchen89.chen <chen89.chen@samsung.com>
Fri, 1 Dec 2017 06:14:49 +0000 (14:14 +0800)
committerhj kim <backto.kim@samsung.com>
Fri, 1 Dec 2017 05:47:59 +0000 (05:47 +0000)
Change-Id: Id2649795347929619a4d0786af5fd5b5c97eae04

src/media_folder.c
src/media_storage.c

index 8089a7a..b867581 100755 (executable)
@@ -28,9 +28,17 @@ int media_folder_get_folder_count_from_db(filter_h filter, int *folder_count)
                media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
                return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
        }
+#ifdef _USE_TVPD_MODE
+       g_mutex_lock(_content_get_db_mutex());
+#endif
 
        ret = _media_db_get_group_count(filter, MEDIA_GROUP_FOLDER, folder_count);
 
+#ifdef _USE_TVPD_MODE
+       g_mutex_unlock(_content_get_db_mutex());
+#endif
+
+
        return ret;
 }
 
@@ -61,7 +69,16 @@ int media_folder_get_media_count_from_db(const char *folder_id, filter_h filter,
        int ret = MEDIA_CONTENT_ERROR_NONE;
 
        if (STRING_VALID(folder_id) && media_count) {
+#ifdef _USE_TVPD_MODE
+               g_mutex_lock(_content_get_db_mutex());
+#endif
+
                ret = _media_db_get_group_item_count(folder_id, filter, MEDIA_GROUP_FOLDER, media_count);
+
+#ifdef _USE_TVPD_MODE
+               g_mutex_unlock(_content_get_db_mutex());
+#endif
+
        } else {
                media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
                return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
@@ -75,7 +92,16 @@ int media_folder_foreach_media_from_db(const char *folder_id, filter_h filter, m
        int ret = MEDIA_CONTENT_ERROR_NONE;
 
        if ((callback != NULL) && STRING_VALID(folder_id)) {
+#ifdef _USE_TVPD_MODE
+               g_mutex_lock(_content_get_db_mutex());
+#endif
+
                ret = _media_db_get_group_item(folder_id, filter, callback, user_data, MEDIA_GROUP_FOLDER);
+
+#ifdef _USE_TVPD_MODE
+               g_mutex_unlock(_content_get_db_mutex());
+#endif
+
        } else {
                media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
                return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
index 076e5b4..2bd57b2 100755 (executable)
@@ -74,7 +74,15 @@ int media_storage_foreach_storage_from_db(filter_h filter, media_storage_cb call
        int ret = MEDIA_CONTENT_ERROR_NONE;
 
        if (callback != NULL) {
+#ifdef _USE_TVPD_MODE
+       g_mutex_lock(_content_get_db_mutex());
+#endif
+
                ret = _media_db_get_storage(filter, callback, user_data);
+
+#ifdef _USE_TVPD_MODE
+       g_mutex_unlock(_content_get_db_mutex());
+#endif
        } else {
                media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
                return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;