]> granicus.if.org Git - libevent/commitdiff
call epoll_ctl after changing our state table; in case that epoll_ctl fails
authorNiels Provos <provos@gmail.com>
Tue, 10 May 2005 08:14:39 +0000 (08:14 +0000)
committerNiels Provos <provos@gmail.com>
Tue, 10 May 2005 08:14:39 +0000 (08:14 +0000)
we need to make sure that the table is consistent. from William Ahern

svn:r162

epoll.c

diff --git a/epoll.c b/epoll.c
index 1b483e1ddf59e50eb69fb9b19616e23e79009b57..9f1066d8618eff1d63c5d62e968d1a89c75489da 100644 (file)
--- a/epoll.c
+++ b/epoll.c
@@ -333,13 +333,13 @@ epoll_del(void *arg, struct event *ev)
        epev.events = events;
        epev.data.ptr = evep;
 
-       if (epoll_ctl(epollop->epfd, op, fd, &epev) == -1)
-               return (-1);
-
        if (needreaddelete)
                evep->evread = NULL;
        if (needwritedelete)
                evep->evwrite = NULL;
 
+       if (epoll_ctl(epollop->epfd, op, fd, &epev) == -1)
+               return (-1);
+
        return (0);
 }