Update the return event of poll for exception case 94/236494/7
authorYoungHun Kim <yh8004.kim@samsung.com>
Wed, 17 Jun 2020 11:52:58 +0000 (20:52 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Thu, 18 Jun 2020 08:21:11 +0000 (17:21 +0900)
Change-Id: I1f14eebc714c8c6ce5eec5532eaceda107e2d428

src/daemon/mm_resource_manager_daemon_priv.c

index e92793d..45b29a1 100644 (file)
@@ -88,7 +88,7 @@ static void __handle_release_callbacks(GArray *requests);
 static inline void __add_cb_request(GArray *cb_requests, mm_resource_manager_dmn_p mgr,
                mm_resource_manager_res_type_e type, mm_resource_manager_res_volume volume);
 static void __release_all_resources(mm_resource_manager_dmn_p manager);
-static gboolean __poll(struct pollfd sync, mm_resource_manager_id id, short events);
+static gboolean __poll(struct pollfd sync, mm_resource_manager_id id);
 static gboolean __wait_for_release_cb_sync(mm_resource_manager_id id);
 
 
@@ -741,30 +741,32 @@ static void __release_all_resources(mm_resource_manager_dmn_p manager)
        }
 }
 
-static gboolean __poll(struct pollfd sync, mm_resource_manager_id id, short events)
+static gboolean __poll(struct pollfd sync, mm_resource_manager_id id)
 {
        int errsv = 0;
        int try_cnt = 0;
        int ret = 0;
 
        while (try_cnt++ < 3) {
-               sync.events = events;
+               sync.events = POLLIN;
                sync.revents = 0;
 
                ret = poll(&sync, 1, RELEASE_CB_SYNC_TIMEOUT);
 
                if (ret == -1) {
                        errsv = errno;
-                       MM_RM_ERROR("Polling is failed [fd %d errno %d] RM #%"PRIu64, sync.fd, errsv, id);
+                       MM_RM_ERROR("[%d ms] Polling is failed [fd %d errno %d] RM #%"PRIu64" revents : 0x%x",
+                               RELEASE_CB_SYNC_TIMEOUT, sync.fd, errsv, id, sync.revents);
                        if (errsv == EAGAIN)
                                continue;
                        break;
                } else if (ret == 0) {
-                       MM_RM_WARNING("Wait timeout is elapsed [fd %d] RM #%"PRIu64 , sync.fd, id);
+                       MM_RM_WARNING("Wait timeout [%d ms] is elapsed [fd %d] RM #%"PRIu64" revents : 0x%x",
+                               RELEASE_CB_SYNC_TIMEOUT, sync.fd, id, sync.revents);
                        break;
                }
 
-               MM_RM_INFO("[fd %d] RM #%"PRIu64" events %d", sync.fd, id, events);
+               MM_RM_INFO("[fd %d] RM #%"PRIu64" revents : 0x%x", sync.fd, id, sync.revents);
                return TRUE;
        }
 
@@ -781,7 +783,7 @@ static gboolean __wait_for_release_cb_sync(mm_resource_manager_id id)
        sync.fd = open(RELEASE_CB_SYNC_PATH, O_RDONLY | O_NONBLOCK);
        MM_RM_RETVM_IF(sync.fd == -1, FALSE, "Sync FIFO cannot be opened");
 
-       if (!__poll(sync, id, POLLIN))
+       if (!__poll(sync, id))
                goto out;
 
        read_size = read(sync.fd, &recv_id, sizeof(recv_id));
@@ -793,7 +795,7 @@ static gboolean __wait_for_release_cb_sync(mm_resource_manager_id id)
        if (id != _mm_rm_hash64(recv_id))
                MM_RM_WARNING("Sync is received from wrong client #%"PRIu64, id);
 
-       ret = __poll(sync, id, POLLIN | POLLHUP);
+       ret = __poll(sync, id);
 
 out:
        close(sync.fd);