diff --git a/src/impl/pollservice.cpp b/src/impl/pollservice.cpp index c03e6fc41..ae4daa22b 100644 --- a/src/impl/pollservice.cpp +++ b/src/impl/pollservice.cpp @@ -189,12 +189,13 @@ void PollService::runLoop() { } while (ret < 0 && (sockerrno == SEINTR || sockerrno == SEAGAIN)); + if (ret < 0) { #ifdef _WIN32 - if (ret == WSAENOTSOCK) - continue; // prepare again as the fd has been removed + if (sockerrno == WSAENOTSOCK) + continue; // prepare again as the fd has been removed #endif - if (ret < 0) throw std::runtime_error("poll failed, errno=" + std::to_string(sockerrno)); + } process(pfds); }