aboutsummaryrefslogtreecommitdiff
path: root/src/netbase.cpp
diff options
context:
space:
mode:
authortecnovert <tecnovert@particl.io>2019-07-18 13:04:16 +0200
committertecnovert <tecnovert@particl.io>2019-07-18 13:04:16 +0200
commita52818cc5633494992da7d1dc8fdb04b4a1b7c29 (patch)
tree91f658baa3eb5d3d5a66448335599b546412e279 /src/netbase.cpp
parent0515406acb5d0c60e743822853b80e122285a82c (diff)
downloadbitcoin-a52818cc5633494992da7d1dc8fdb04b4a1b7c29.tar.xz
net: Make poll in InterruptibleRecv only filter for POLLIN events.
poll should block until there is data to be read or the timeout expires. Filtering for the POLLOUT event causes poll to return immediately which leads to high CPU usage when trying to connect to non-responding peers through tor. Removing POLLOUT matches how select is used when USE_POLL isn't defined.
Diffstat (limited to 'src/netbase.cpp')
-rw-r--r--src/netbase.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/netbase.cpp b/src/netbase.cpp
index 53e5985a0f..6d4738c835 100644
--- a/src/netbase.cpp
+++ b/src/netbase.cpp
@@ -347,7 +347,7 @@ static IntrRecvError InterruptibleRecv(uint8_t* data, size_t len, int timeout, c
#ifdef USE_POLL
struct pollfd pollfd = {};
pollfd.fd = hSocket;
- pollfd.events = POLLIN | POLLOUT;
+ pollfd.events = POLLIN;
int nRet = poll(&pollfd, 1, timeout_ms);
#else
struct timeval tval = MillisToTimeval(timeout_ms);