Update dlog of release cb 89/236289/5
authorYoungHun Kim <yh8004.kim@samsung.com>
Tue, 16 Jun 2020 06:02:36 +0000 (15:02 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Wed, 17 Jun 2020 02:23:07 +0000 (11:23 +0900)
Change-Id: Iea1574692ee7bb976aedeaa1d5aec2dd41e1313b

src/lib/mm_resource_manager_priv.c

index 2db981b..6bf014e 100644 (file)
@@ -77,7 +77,7 @@ typedef struct {
        GThread *dispatcher_thread;
 } mm_resource_manager_s;
 
-static const char *res_state_str[MM_RESOURCE_MANAGER_RES_STATE_FOR_RELEASE + 1] = {
+static const char *res_state_str[] = {
        "FOR ACQUIRE",
        "ACQUIRED",
        "FOR RELEASE",
@@ -503,18 +503,22 @@ static void __mm_resource_manager_release_callback(mm_resource_manager_s *handle
        mm_resource_manager_id handle_id;
        gboolean release_all = FALSE;
        int idx;
-       int len;
-
-       MM_RM_INFO("Release callback is emitted for %s of volume %d in RM #%"PRIu64, _mm_resource_manager_get_res_str(type), volume, id);
+       int prev_len;
 
        handle_id = handle->id;
        MM_RM_HASH64(handle_id);
+
+       MM_RM_INFO("Release callback is invoked for %s of volume %d in handle RM #%"PRIu64" input RM #%"PRIu64,
+               _mm_resource_manager_get_res_str(type), volume, handle_id, id);
+
        if (handle_id == id) {
                __mm_resources_lock(handle);
-               len = handle->resources->len;
                __mm_resource_handles_unlock();
+               prev_len = handle->resources->len;
+
+               MM_RM_DEBUG("resource %p length %d", handle->resources, prev_len);
 
-               for (idx = 0; idx < len; idx++) {
+               for (idx = 0; idx < prev_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 */
@@ -528,7 +532,7 @@ static void __mm_resource_manager_release_callback(mm_resource_manager_s *handle
 
                                g_ptr_array_remove_index_fast(handle->resources, idx);
 
-                               MM_RM_INFO("resource length %d => %d", len, handle->resources->len);
+                               MM_RM_INFO("resource length %d => %d", prev_len, handle->resources->len);
 
                                break;
                        }
@@ -544,6 +548,7 @@ static void __mm_resource_manager_release_callback(mm_resource_manager_s *handle
                                MM_RM_WARNING("Resources cannot be released after release cb");
                }
        } else {
+               MM_RM_WARNING("handle RM #%"PRIu64" input RM #%"PRIu64" is different", handle_id, id);
                __mm_resource_handles_unlock();
        }
 }