--- libev/ev_epoll.c 2011/01/05 04:25:12 1.56 +++ libev/ev_epoll.c 2011/01/08 10:25:16 1.57 @@ -117,6 +117,8 @@ } else if (expect_true (errno == EPERM)) { + /* EPERM means the fd is always ready, but epoll is too snobbish */ + /* to handle it, unlike select or poll. */ anfds [fd].emask = EV_EMASK_EPERM; /* add fd to epoll_eperms, if not already inside */