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.28 by root, Wed Dec 5 13:54:36 2007 UTC vs.
Revision 1.29 by root, Sun Dec 9 02:12:44 2007 UTC

40 ev.data.u64 = fd; /* use u64 to fully initialise the struct, for nicer strace etc. */ 40 ev.data.u64 = fd; /* use u64 to fully initialise the struct, for nicer strace etc. */
41 ev.events = 41 ev.events =
42 (nev & EV_READ ? EPOLLIN : 0) 42 (nev & EV_READ ? EPOLLIN : 0)
43 | (nev & EV_WRITE ? EPOLLOUT : 0); 43 | (nev & EV_WRITE ? EPOLLOUT : 0);
44 44
45 if (epoll_ctl (backend_fd, mode, fd, &ev)) 45 if (expect_false (epoll_ctl (backend_fd, mode, fd, &ev)))
46 if (errno != ENOENT /* on ENOENT the fd went away, so try to do the right thing */ 46 if (errno != ENOENT /* on ENOENT the fd went away, so try to do the right thing */
47 || (nev && epoll_ctl (backend_fd, EPOLL_CTL_ADD, fd, &ev))) 47 || (nev && epoll_ctl (backend_fd, EPOLL_CTL_ADD, fd, &ev)))
48 fd_kill (EV_A_ fd); 48 fd_kill (EV_A_ fd);
49} 49}
50 50
52epoll_poll (EV_P_ ev_tstamp timeout) 52epoll_poll (EV_P_ ev_tstamp timeout)
53{ 53{
54 int i; 54 int i;
55 int eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, (int)ceil (timeout * 1000.)); 55 int eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, (int)ceil (timeout * 1000.));
56 56
57 if (eventcnt < 0) 57 if (expect_false (eventcnt < 0))
58 { 58 {
59 if (errno != EINTR) 59 if (errno != EINTR)
60 syserr ("(libev) epoll_wait"); 60 syserr ("(libev) epoll_wait");
61 61
62 return; 62 return;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines