(nev & EV_READ ? EPOLLIN : 0)
| (nev & EV_WRITE ? EPOLLOUT : 0);
- if (epoll_ctl (backend_fd, mode, fd, &ev))
+ if (expect_false (epoll_ctl (backend_fd, mode, fd, &ev)))
if (errno != ENOENT /* on ENOENT the fd went away, so try to do the right thing */
|| (nev && epoll_ctl (backend_fd, EPOLL_CTL_ADD, fd, &ev)))
fd_kill (EV_A_ fd);
int i;
int eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, (int)ceil (timeout * 1000.));
- if (eventcnt < 0)
+ if (expect_false (eventcnt < 0))
{
if (errno != EINTR)
syserr ("(libev) epoll_wait");
fcntl (backend_fd, F_SETFD, FD_CLOEXEC);
- backend_fudge = 1e-3; /* needed to compensate for epoll returning early */
+ backend_fudge = 0.; /* kernel sources seem to indicate this to be zero */
backend_modify = epoll_modify;
backend_poll = epoll_poll;