diff options
author | Cory Fields <cory-nospam-@coryfields.com> | 2016-12-31 02:05:30 -0500 |
---|---|---|
committer | Cory Fields <cory-nospam-@coryfields.com> | 2017-01-12 23:05:47 -0500 |
commit | c6e8a9bcffe4c0f236e27c663f08785d1a0a783b (patch) | |
tree | b622192961f036991f6de2ceea0d483931a78eca /src/net.h | |
parent | 4d712e366ca7fffaf96394ef01c9246482c0d92e (diff) |
net: add a flag to indicate when a node's process queue is full
Messages are dumped very quickly from the socket handler to the processor, so
it's the depth of the processing queue that's interesting.
The socket handler checks the process queue's size during the brief message
hand-off and pauses if necessary, and the processor possibly unpauses each time
a message is popped off of its queue.
Diffstat (limited to 'src/net.h')
-rw-r--r-- | src/net.h | 11 |
1 files changed, 2 insertions, 9 deletions
@@ -610,6 +610,7 @@ public: CCriticalSection cs_vProcessMsg; std::list<CNetMessage> vProcessMsg; + size_t nProcessQueueSize; std::deque<CInv> vRecvGetData; std::list<CNetMessage> vRecvMsg; @@ -650,6 +651,7 @@ public: const NodeId id; const uint64_t nKeyedNetGroup; + std::atomic_bool fPauseRecv; protected: mapMsgCmdSize mapSendBytesPerMsgCmd; @@ -744,15 +746,6 @@ public: } // requires LOCK(cs_vRecvMsg) - unsigned int GetTotalRecvSize() - { - unsigned int total = 0; - BOOST_FOREACH(const CNetMessage &msg, vRecvMsg) - total += msg.vRecv.size() + 24; - return total; - } - - // requires LOCK(cs_vRecvMsg) bool ReceiveMsgBytes(const char *pch, unsigned int nBytes, bool& complete); void SetRecvVersion(int nVersionIn) |