… | |
… | |
201 | ev_free (epoll_events); |
201 | ev_free (epoll_events); |
202 | epoll_eventmax = array_nextsize (sizeof (struct epoll_event), epoll_eventmax, epoll_eventmax + 1); |
202 | epoll_eventmax = array_nextsize (sizeof (struct epoll_event), epoll_eventmax, epoll_eventmax + 1); |
203 | epoll_events = (struct epoll_event *)ev_malloc (sizeof (struct epoll_event) * epoll_eventmax); |
203 | epoll_events = (struct epoll_event *)ev_malloc (sizeof (struct epoll_event) * epoll_eventmax); |
204 | } |
204 | } |
205 | |
205 | |
206 | /* now add events for all fds where epoll fails, while select works... */ |
206 | /* now synthesize events for all fds where epoll fails, while select works... */ |
207 | for (i = epoll_epermcnt; i--; ) |
207 | for (i = epoll_epermcnt; i--; ) |
208 | { |
208 | { |
209 | int fd = epoll_eperms [i]; |
209 | int fd = epoll_eperms [i]; |
210 | unsigned char events = anfds [fd].events & (EV_READ | EV_WRITE); |
210 | unsigned char events = anfds [fd].events & (EV_READ | EV_WRITE); |
211 | |
211 | |