mirror of /home/gitosis/repositories/libev.git
parent
b4fb939c8b
commit
24f6e76279
|
@ -52,20 +52,23 @@ poll_modify (EV_P_ int fd, int oev, int nev)
|
|||
|
||||
if (idx < 0) /* need to allocate a new pollfd */
|
||||
{
|
||||
idx = pollcnt++;
|
||||
pollidxs [fd] = idx = pollcnt++;
|
||||
array_needsize (struct pollfd, polls, pollmax, pollcnt, );
|
||||
polls [idx].fd = fd;
|
||||
}
|
||||
|
||||
assert (polls [idx].fd == fd);
|
||||
|
||||
if (nev)
|
||||
polls [idx].events =
|
||||
(nev & EV_READ ? POLLIN : 0)
|
||||
| (nev & EV_WRITE ? POLLOUT : 0);
|
||||
else /* remove pollfd */
|
||||
{
|
||||
if (idx < pollcnt--)
|
||||
pollidxs [fd] = -1;
|
||||
|
||||
if (idx < --pollcnt)
|
||||
{
|
||||
pollidxs [fd] = -1;
|
||||
polls [idx] = polls [pollcnt];
|
||||
pollidxs [polls [idx].fd] = idx;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue