--- libev/ev_epoll.c 2007/11/06 00:52:33 1.21 +++ libev/ev_epoll.c 2007/11/06 01:17:16 1.22 @@ -110,15 +110,10 @@ static void epoll_fork (EV_P) { - for (;;) - { - epoll_fd = epoll_create (256); + close (epoll_fd); - if (epoll_fd >= 0) - break; - - syserr ("(libev) epoll_create"); - } + while ((epoll_fd = epoll_create (256)) < 0) + syserr ("(libev) epoll_create"); fcntl (epoll_fd, F_SETFD, FD_CLOEXEC);