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);
}
}
-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;
}
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));
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);