diff --git a/src/dpp/socketengines/epoll.cpp b/src/dpp/socketengines/epoll.cpp index 07451eee9f..b0be2e6b5b 100644 --- a/src/dpp/socketengines/epoll.cpp +++ b/src/dpp/socketengines/epoll.cpp @@ -77,14 +77,6 @@ struct DPP_EXPORT socket_engine_epoll : public socket_engine_base { void process_events() final { const int sleep_length = 1000; - if (sockets == 0) { - /* epoll_wait() on empty set waits forever (or until another thread inserts a socket into the set. - * We can't trust that this is going to happen, and it may deadlock the cluster, so in the event the - * set is empty, we wait a millisecond (so it isn't a busy-wait) and return. - */ - std::this_thread::sleep_for(std::chrono::milliseconds(1)); - return; - } int i = epoll_wait(epoll_handle, events.data(), MAX_EVENTS, sleep_length); for (int j = 0; j < i; j++) { diff --git a/src/dpp/socketengines/kqueue.cpp b/src/dpp/socketengines/kqueue.cpp index b63cccc978..498cd56123 100644 --- a/src/dpp/socketengines/kqueue.cpp +++ b/src/dpp/socketengines/kqueue.cpp @@ -63,6 +63,7 @@ struct DPP_EXPORT socket_engine_kqueue : public socket_engine_base { int i = kevent(kqueue_handle, nullptr, 0, ke_list.data(), static_cast(ke_list.size()), &ts); if (i < 0) { + prune(); return; }