Add to skip the mark_all_for_release while releasing 28/238628/2 accepted/tizen/unified/20200717.124730 submit/tizen/20200716.054500
authorYoungHun Kim <yh8004.kim@samsung.com>
Wed, 15 Jul 2020 23:45:50 +0000 (08:45 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Wed, 15 Jul 2020 23:57:55 +0000 (08:57 +0900)
Change-Id: I798230a931ea7bc10467477b82d710a194269f5e

packaging/mm-resource-manager.spec
src/lib/mm_resource_manager_priv.c

index 300c34b..39c1cc9 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mm-resource-manager
 Summary:    A Multimedia Resource Manager API
-Version:    0.2.33
+Version:    0.2.34
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index a983140..e291e88 100644 (file)
@@ -202,6 +202,8 @@ int _mm_resource_manager_destroy(mm_resource_manager_h rm)
        mm_resource_manager_id id;
        int ret = MM_RESOURCE_MANAGER_ERROR_NONE;
 
+       MM_RM_INFO("Enter");
+
        __mm_resource_handles_lock();
        MM_RESOURCE_MANAGER_CHECK(handle);
        g_ptr_array_remove_fast(handles, handle);
@@ -273,6 +275,8 @@ int _mm_resource_manager_resize_marked(mm_resource_manager_h rm,
        int idx;
        int ret = MM_RESOURCE_MANAGER_ERROR_NONE;
 
+       MM_RM_INFO("Enter");
+
        __mm_resource_handles_lock();
        MM_RESOURCE_MANAGER_CHECK(handle);
        __mm_resources_lock(handle);
@@ -329,6 +333,8 @@ int _mm_resource_manager_mark_for_release(mm_resource_manager_h rm, mm_resource_
        int idx = 0;
        const char *res_name = NULL;
 
+       MM_RM_INFO("Enter");
+
        __mm_resource_handles_lock();
 
        handle = MM_RESOURCE_MANAGER(rm);
@@ -378,8 +384,16 @@ int _mm_resource_manager_mark_all_for_release(mm_resource_manager_h rm)
        int idx;
        int len;
 
+       MM_RM_INFO("Enter");
+
        __mm_resource_handles_lock();
        MM_RESOURCE_MANAGER_CHECK(handle);
+       if (handle->release_cb.is_invoked) {
+               MM_RM_ERROR("RM #%"PRIu64" is releasing resource, so resource manager can't support your mark all for release",
+                       _mm_rm_hash64(handle->id));
+               __mm_resource_handles_unlock();
+               return MM_RESOURCE_MANAGER_ERROR_INVALID_OPERATION;
+       }
        __mm_resources_lock(handle);
        __mm_resource_handles_unlock();