Программы на C++. Форум разработчиков
-
Anonymous
Эполл, два клиента, это плохо работает. Почему?
Сообщение
Anonymous »
Код: Выделить всё
while(true)
{
int nfds = epoll_wait(epoll_fd, events, Constant::MAX_EVENTS, 20);
if (nfds == 0 ) {
for(auto& pair : fd_session_map){
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
if(std::chrono::duration_cast(now - pair.second.getLastGiTime()).count() > 10000 ){
generalIR(pair.first);
now = std::chrono::steady_clock::now();
pair.second.setLastGiTime(now);
}
}
}
for (int i = 0; i < nfds; i++)
{
if (events[i].data.fd == sock.get_handle())
{
handleNewConnection();
}
else if (events[i].events & EPOLLIN)
{
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79862213/epoll-two-clients-it-doesnt-work-well-why[/url]
1767776254
Anonymous
[code]while(true)
{
int nfds = epoll_wait(epoll_fd, events, Constant::MAX_EVENTS, 20);
if (nfds == 0 ) {
for(auto& pair : fd_session_map){
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
if(std::chrono::duration_cast(now - pair.second.getLastGiTime()).count() > 10000 ){
generalIR(pair.first);
now = std::chrono::steady_clock::now();
pair.second.setLastGiTime(now);
}
}
}
for (int i = 0; i < nfds; i++)
{
if (events[i].data.fd == sock.get_handle())
{
handleNewConnection();
}
else if (events[i].events & EPOLLIN)
{
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79862213/epoll-two-clients-it-doesnt-work-well-why[/url]