Add signal handler for client process
[platform/core/multimedia/mm-resource-manager.git] / src / lib / mm_resource_manager_priv.c
index caf78d9..a69a3c2 100644 (file)
@@ -75,8 +75,8 @@ typedef struct {
        GThread *dispatcher_thread;
 } mm_resource_manager_s;
 
-static void __init_lib() __attribute__((constructor));
-static void __deinit_lib() __attribute__((destructor));
+static void __init_lib(void) __attribute__((constructor));
+static void __deinit_lib(void) __attribute__((destructor));
 static int __check_resource(mm_resource_manager_s *rm,
                mm_resource_manager_res_type_e type,
                mm_resource_manager_res_volume volume);
@@ -579,24 +579,23 @@ static int __check_resource(mm_resource_manager_s *rm,
                mm_resource_manager_res_type_e type,
                mm_resource_manager_res_volume volume)
 {
-       mm_resource_manager_res_volume remaining_local_volume =
-                       rm->__max_resource_volumes[type];
+       mm_resource_manager_res_volume local_volume = rm->__max_resource_volumes[type];
        mm_resource_manager_res_p i_res;
        int i;
 
-       MM_RM_INFO("[#%"PRIu64" type : %d] resource (#%d) for the platform", _mm_rm_hash64(rm->id), type, remaining_local_volume);
+       if (local_volume == MM_RESOURCE_MANAGER_NO_RES)
+               MM_RM_ERROR("[#%"PRIu64" type : %d volume : %d] resource (#%d) for the platform",
+                       _mm_rm_hash64(rm->id), type, volume, local_volume);
 
        if (volume > 0) {
                for (i = 0; i < rm->resources->len; i++) {
                        i_res = (mm_resource_manager_res_p) rm->resources->pdata[i];
-                       if (i_res->type == type &&
-                                       i_res->state != MM_RESOURCE_MANAGER_RES_STATE_FOR_RELEASE &&
-                                       (i_res->volume == MM_RESOURCE_MANAGER_RES_VOLUME_FULL ||
-                                                       (remaining_local_volume -= i_res->volume) < volume)) {
+                       if (i_res->type == type && i_res->state != MM_RESOURCE_MANAGER_RES_STATE_FOR_RELEASE
+                                       && (i_res->volume == MM_RESOURCE_MANAGER_RES_VOLUME_FULL
+                                               || (local_volume -= i_res->volume) < volume)) {
                                MM_RM_ERROR("Requested volume %d exceeds remaining local volume %d",
-                                               volume,
-                                               i_res->volume == MM_RESOURCE_MANAGER_RES_VOLUME_FULL ?
-                                               0 : remaining_local_volume);
+                                               volume, i_res->volume == MM_RESOURCE_MANAGER_RES_VOLUME_FULL ?
+                                               0 : local_volume);
                                return MM_RESOURCE_MANAGER_ERROR_NOT_ENOUGH;
                        }
                }
@@ -689,15 +688,15 @@ static void __send_release_cb_sync(mm_resource_manager_id id)
        close(sync_fd);
 }
 
-static void __init_lib()
+static void __init_lib(void)
 {
        handles = g_ptr_array_sized_new(MM_RESOURCE_MANAGER_RESERVED_HANDLE_ARRAY_SIZE);
        MM_RM_RETM_IF(handles == NULL, "API lib cannot be initialized");
 
-       MM_RM_INFO("API lib is loaded");
+       MM_RM_INFO("API lib is loaded [%d] Set signal handler", _mm_resource_manager_set_signal_handlers());
 }
 
-static void __deinit_lib()
+static void __deinit_lib(void)
 {
        if (handles->len > 0) {
                MM_RM_DEBUG("Handles array [%d] is not empty. It will be cleaned now.", handles->len);
@@ -768,10 +767,7 @@ static int __dbus_init_conf(mm_resource_manager_s *handle)
                        MM_RESOURCE_MANAGER_ERROR_INVALID_OPERATION, "Variant data are empty");
 
        if (g_variant_iter_init(&volume_iter, max_volume) == MM_RESOURCE_MANAGER_RES_TYPE_MAX) {
-               for (i = 0; g_variant_iter_next(&volume_iter, "i", &handle->__max_resource_volumes[i]); i++) {
-                       if (handle->__max_resource_volumes[i] == MM_RESOURCE_MANAGER_NO_RES)
-                               MM_RM_INFO("Maybe occur the  error operation related dbus");
-               }
+               for (i = 0; g_variant_iter_next(&volume_iter, "i", &handle->__max_resource_volumes[i]); i++);
                g_variant_unref(max_volume);
                max_volume = NULL;
        } else {