Kernel: Fix epoll EPOLLHUP and EPOLLERR reporting

This commit is contained in:
Bananymous 2025-06-03 10:23:53 +03:00
parent 4c0b7d44b4
commit e305698e6b
1 changed files with 2 additions and 2 deletions

View File

@ -136,7 +136,7 @@ namespace Kernel
auto& listen = listen_it->value; auto& listen = listen_it->value;
{ {
uint32_t listen_mask = EPOLLERR | EPOLLHUP; uint32_t listen_mask = EPOLLHUP | EPOLLERR;
for (size_t fd = 0; fd < listen.events.size(); fd++) for (size_t fd = 0; fd < listen.events.size(); fd++)
if (listen.has_fd(fd)) if (listen.has_fd(fd))
listen_mask |= listen.events[fd].events; listen_mask |= listen.events[fd].events;
@ -170,7 +170,7 @@ namespace Kernel
continue; continue;
auto& listen_event = listen.events[fd]; auto& listen_event = listen.events[fd];
const auto new_events = listen_event.events & events; const auto new_events = (listen_event.events | EPOLLHUP | EPOLLERR) & events;
if (new_events == 0) if (new_events == 0)
continue; continue;