fixup! Check if the release callback is called not state for avoiding release callbac... 55/235755/3 accepted/tizen/unified/20200611.134803 submit/tizen/20200610.061253
authorYoungHun Kim <yh8004.kim@samsung.com>
Tue, 9 Jun 2020 10:09:41 +0000 (19:09 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Wed, 10 Jun 2020 05:07:58 +0000 (14:07 +0900)
Change-Id: Ief6e16fe88e355a54c2768a97827f58018087a9b

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

index ea95477..c697851 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mm-resource-manager
 Summary:    A Multimedia Resource Manager API
-Version:    0.2.29
+Version:    0.2.30
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 5bbf50d..4d4170b 100644 (file)
@@ -540,10 +540,12 @@ static void __mm_resource_manager_release_callback(mm_resource_manager_s *handle
                for (idx = 0; idx < handle->resources->len; idx++) {
                        resource = (mm_resource_manager_res_s*)handle->resources->pdata[idx];
                        if (resource->type == type && resource->volume == volume) {
+                               /* FIXME : Set true in advance release callback invoking to prevent deadlock with resource marking */
+                               handle->release_cb.is_invoked = TRUE;
+
                                MM_RM_INFO("[res %p type %s volume %d] release_cb", resource, _mm_resource_manager_get_res_str(type), volume);
                                release_all = ((mm_resource_manager_release_cb)handle->release_cb.cb)(handle, resource, handle->release_cb.user_data);
                                MM_RM_INFO("[%d] release_cb is completed", release_all);
-                               handle->release_cb.is_invoked = TRUE;
 
                                __send_release_cb_sync(handle->id);