diff --git a/src/core/libraries/network/net_epoll.cpp b/src/core/libraries/network/net_epoll.cpp index 5a1d34fe8..e64c8ac64 100644 --- a/src/core/libraries/network/net_epoll.cpp +++ b/src/core/libraries/network/net_epoll.cpp @@ -60,8 +60,13 @@ void EpollTable::DeleteHandle(int d) { UNREACHABLE(); } -Epoll* EpollTable::GetEpoll(int d) { - UNREACHABLE(); +Epoll* EpollTable::GetEpoll(int epollid) { + std::scoped_lock lock{m_mutex}; + if (epollid >= epolls.size() || epolls[epollid].Destroyed()) { + return nullptr; + } + + return &epolls[epollid]; } } // namespace Libraries::Net