ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev_epoll.c
(Generate patch)

Comparing libev/ev_epoll.c (file contents):
Revision 1.77 by root, Mon Jul 1 20:47:38 2019 UTC vs.
Revision 1.81 by root, Thu Jul 11 08:29:08 2019 UTC

150 timeout = 0.; 150 timeout = 0.;
151 151
152 /* epoll wait times cannot be larger than (LONG_MAX - 999UL) / HZ msecs, which is below */ 152 /* epoll wait times cannot be larger than (LONG_MAX - 999UL) / HZ msecs, which is below */
153 /* the default libev max wait time, however. */ 153 /* the default libev max wait time, however. */
154 EV_RELEASE_CB; 154 EV_RELEASE_CB;
155 eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, timeout * 1e3); 155 eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, EV_TS_TO_MSEC (timeout));
156 EV_ACQUIRE_CB; 156 EV_ACQUIRE_CB;
157 157
158 if (ecb_expect_false (eventcnt < 0)) 158 if (ecb_expect_false (eventcnt < 0))
159 { 159 {
160 if (errno != EINTR) 160 if (errno != EINTR)
195 * when we are no longer interested in them, but also when we get spurious 195 * when we are no longer interested in them, but also when we get spurious
196 * notifications for fds from another process. this is partially handled 196 * notifications for fds from another process. this is partially handled
197 * above with the gencounter check (== our fd is not the event fd), and 197 * above with the gencounter check (== our fd is not the event fd), and
198 * partially here, when epoll_ctl returns an error (== a child has the fd 198 * partially here, when epoll_ctl returns an error (== a child has the fd
199 * but we closed it). 199 * but we closed it).
200 * note: for events such as POLLHUP, where we can't know whether it refers
201 * to EV_READ or EV_WRITE, we might issue redundant EPOLL_CTL_MOD calls.
200 */ 202 */
201 ev->events = (want & EV_READ ? EPOLLIN : 0) 203 ev->events = (want & EV_READ ? EPOLLIN : 0)
202 | (want & EV_WRITE ? EPOLLOUT : 0); 204 | (want & EV_WRITE ? EPOLLOUT : 0);
203 205
204 /* pre-2.6.9 kernels require a non-null pointer with EPOLL_CTL_DEL, */ 206 /* pre-2.6.9 kernels require a non-null pointer with EPOLL_CTL_DEL, */
280{ 282{
281 ev_free (epoll_events); 283 ev_free (epoll_events);
282 array_free (epoll_eperm, EMPTY); 284 array_free (epoll_eperm, EMPTY);
283} 285}
284 286
285inline_size 287ecb_cold
286void 288static void
287epoll_fork (EV_P) 289epoll_fork (EV_P)
288{ 290{
289 close (backend_fd); 291 close (backend_fd);
290 292
291 while ((backend_fd = epoll_epoll_create ()) < 0) 293 while ((backend_fd = epoll_epoll_create ()) < 0)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines