mirror of /home/gitosis/repositories/libev.git
*** empty log message ***
parent
28a25ca005
commit
6c38a25e17
29
ev_poll.c
29
ev_poll.c
|
@ -86,7 +86,7 @@ poll_modify (EV_P_ int fd, int oev, int nev)
|
|||
static void
|
||||
poll_poll (EV_P_ ev_tstamp timeout)
|
||||
{
|
||||
int i;
|
||||
struct pollfd *p;
|
||||
int res = poll (polls, pollcnt, (int)ceil (timeout * 1000.));
|
||||
|
||||
if (expect_false (res < 0))
|
||||
|
@ -98,17 +98,22 @@ poll_poll (EV_P_ ev_tstamp timeout)
|
|||
else if (errno != EINTR)
|
||||
syserr ("(libev) poll");
|
||||
}
|
||||
else if (res > 0)
|
||||
for (i = 0; i < pollcnt; ++i)
|
||||
if (expect_false (polls [i].revents & POLLNVAL))
|
||||
fd_kill (EV_A_ polls [i].fd);
|
||||
else
|
||||
fd_event (
|
||||
EV_A_
|
||||
polls [i].fd,
|
||||
(polls [i].revents & (POLLOUT | POLLERR | POLLHUP) ? EV_WRITE : 0)
|
||||
| (polls [i].revents & (POLLIN | POLLERR | POLLHUP) ? EV_READ : 0)
|
||||
);
|
||||
|
||||
for (p = polls; res; ++p)
|
||||
if (expect_false (p->revents)) /* this expect is debatable */
|
||||
{
|
||||
--res;
|
||||
|
||||
if (expect_false (p->revents & POLLNVAL))
|
||||
fd_kill (EV_A_ p->fd);
|
||||
else
|
||||
fd_event (
|
||||
EV_A_
|
||||
p->fd,
|
||||
(p->revents & (POLLOUT | POLLERR | POLLHUP) ? EV_WRITE : 0)
|
||||
| (p->revents & (POLLIN | POLLERR | POLLHUP) ? EV_READ : 0)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
int inline_size
|
||||
|
|
Loading…
Reference in New Issue