From: Seonah Moon Date: Tue, 31 Jan 2023 14:32:37 +0000 (+0900) Subject: Use fd as a key to handle eventloop X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Ftizen_7.0;p=platform%2Fcore%2Fapi%2Fvine.git Use fd as a key to handle eventloop Change-Id: Id5fba9ecb647498f8e97bbf0975e7ca79ab551ea --- diff --git a/src/vine-event-loop-epoll.cpp b/src/vine-event-loop-epoll.cpp index 9170517..62b80f7 100755 --- a/src/vine-event-loop-epoll.cpp +++ b/src/vine-event-loop-epoll.cpp @@ -81,13 +81,10 @@ static void *__vine_event_loop_epoll_run(void *arg) } for (int i = 0; i < n; ++i) { - vine_epoll_io_event_handler *h = (vine_epoll_io_event_handler *)events[i].data.ptr; - - if (!h) - continue; - - if (_find_io_event_handler(h->fd) == NULL) { - VINE_LOGI("Removed fd[%d]", h->fd); + int fd = events[i].data.fd; + vine_epoll_io_event_handler *h = _find_io_event_handler(fd); + if (!h) { + VINE_LOGD("Removed fd[%d] %d", fd); continue; } @@ -244,7 +241,7 @@ int vine_event_loop_epoll_add_io_handler( struct epoll_event event; event.events = events; - event.data.ptr = (void *)h; + event.data.fd = fd; epoll_ctl(__vine_epoll_fd, EPOLL_CTL_ADD, fd, &event); VINE_LOGD("Add an epoll event. fd: %d", fd); @@ -257,10 +254,12 @@ int vine_event_loop_epoll_mod_io_handler( { RET_VAL_IF(fd < 0, VINE_ERROR_INVALID_PARAMETER, "fd should be equal to or greater than zero"); + RET_VAL_IF(_find_io_event_handler(fd) == NULL, + VINE_ERROR_INVALID_PARAMETER, "fd is removed."); struct epoll_event event; event.events = events; - event.data.ptr = _find_io_event_handler(fd); + event.data.fd = fd; epoll_ctl(__vine_epoll_fd, EPOLL_CTL_MOD, fd, &event); VINE_LOGD("Modify an epoll event. fd: %d event: %d", fd, events);