fix epoll workers not closing

This commit is contained in:
Sky Johnson 2025-06-12 22:09:06 -05:00
parent 0f5ce5b524
commit 9fd28d5703
2 changed files with 8 additions and 6 deletions

View File

@ -34,8 +34,11 @@ public:
std::array<epoll_event, MAX_EVENTS> events;
while (running_) {
int num_events = epoll_wait(epoll_fd_, events.data(), MAX_EVENTS, -1);
if (num_events == -1) break;
int num_events = epoll_wait(epoll_fd_, events.data(), MAX_EVENTS, 1000);
if (num_events == -1) {
if (errno == EINTR) continue;
break;
}
for (int i = 0; i < num_events; ++i) {
if (events[i].data.fd == server_fd_) {

View File

@ -7,8 +7,7 @@ HttpServer* server = nullptr;
void signal_handler(int sig) {
if (server) {
std::cout << "\nShutting down server...\n";
delete server;
exit(0);
server->stop();
}
}