From 1e6afd0dbc1c581435588e1e9bb419a035b81028 Mon Sep 17 00:00:00 2001 From: Patrick Strateman Date: Mon, 29 Oct 2018 16:30:30 -0400 Subject: [PATCH] Introduce and use constant SELECT_TIMEOUT_MILLISECONDS. --- src/net.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index b85a8c2c1..0613e0599 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -71,6 +71,10 @@ enum BindFlags { BF_WHITELIST = (1U << 2), }; +// The set of sockets cannot be modified while waiting +// The sleep time needs to be small to avoid new sockets stalling +static const uint64_t SELECT_TIMEOUT_MILLISECONDS = 50; + const static std::string NET_MESSAGE_COMMAND_OTHER = "*other*"; static const uint64_t RANDOMIZER_ID_NETGROUP = 0x6c0edd8036ef4036ULL; // SHA256("netgroup")[0:8] @@ -1264,7 +1268,7 @@ void CConnman::SocketHandler() // struct timeval timeout; timeout.tv_sec = 0; - timeout.tv_usec = 50000; // frequency to poll pnode->vSend + timeout.tv_usec = SELECT_TIMEOUT_MILLISECONDS * 1000; // frequency to poll pnode->vSend fd_set fdsetRecv; fd_set fdsetSend; @@ -1337,7 +1341,7 @@ void CConnman::SocketHandler() } FD_ZERO(&fdsetSend); FD_ZERO(&fdsetError); - if (!interruptNet.sleep_for(std::chrono::milliseconds(timeout.tv_usec/1000))) + if (!interruptNet.sleep_for(std::chrono::milliseconds(SELECT_TIMEOUT_MILLISECONDS))) return; }