forked from vitalif/vitastor
Skip removed descriptors in epoll (this is possible in real clusters)
parent
f4ea313707
commit
c7cc414c90
|
@ -84,8 +84,12 @@ void epoll_manager_t::handle_epoll_events()
|
||||||
nfds = epoll_wait(epoll_fd, events, MAX_EPOLL_EVENTS, 0);
|
nfds = epoll_wait(epoll_fd, events, MAX_EPOLL_EVENTS, 0);
|
||||||
for (int i = 0; i < nfds; i++)
|
for (int i = 0; i < nfds; i++)
|
||||||
{
|
{
|
||||||
auto & cb = epoll_handlers[events[i].data.fd];
|
auto cb_it = epoll_handlers.find(events[i].data.fd);
|
||||||
|
if (cb_it != epoll_handlers.end())
|
||||||
|
{
|
||||||
|
auto & cb = cb_it->second;
|
||||||
cb(events[i].data.fd, events[i].events);
|
cb(events[i].data.fd, events[i].events);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} while (nfds == MAX_EPOLL_EVENTS);
|
} while (nfds == MAX_EPOLL_EVENTS);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue