aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Rubin <jeremy.l.rubin@gmail.com>2016-06-15 19:28:04 -0400
committerCory Fields <cory-nospam-@coryfields.com>2016-09-08 13:06:05 -0400
commitd1a2295f0d58423652b124b48fc887a9721b765c (patch)
tree72922e98c159106a37c8efdc2670630ab814f8cf
parent98591c50273b13cfc5419548b527280d6a84a43d (diff)
Made the ForEachNode* functions in src/net.cpp more pragmatic and self documenting
-rw-r--r--src/main.cpp3
-rw-r--r--src/net.cpp37
-rw-r--r--src/net.h12
-rw-r--r--src/rpc/misc.cpp1
-rw-r--r--src/rpc/net.cpp1
-rw-r--r--src/rpc/rawtransaction.cpp1
-rw-r--r--src/wallet/wallet.cpp1
7 files changed, 41 insertions, 15 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 1835d9712b..e4c9ce5626 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -3091,7 +3091,6 @@ bool ActivateBestChain(CValidationState &state, const CChainParams& chainparams,
pnode->PushBlockHash(hash);
}
}
- return true;
});
}
// Notify external listeners about the new tip.
@@ -4727,7 +4726,6 @@ static void RelayTransaction(const CTransaction& tx, CConnman& connman)
connman.ForEachNode([&inv](CNode* pnode)
{
pnode->PushInventory(inv);
- return true;
});
}
@@ -4749,7 +4747,6 @@ static void RelayAddress(const CAddress& addr, bool fReachable, CConnman& connma
uint64_t hashKey = CSipHasher(hasher).Write(pnode->id).Finalize();
mapMix.emplace(hashKey, pnode);
}
- return true;
};
auto pushfunc = [&addr, &mapMix, &nRelayNodes] {
diff --git a/src/net.cpp b/src/net.cpp
index 508b0dd962..bf5cc07db1 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -2697,7 +2697,7 @@ bool CConnman::ForNode(NodeId id, std::function<bool(CNode* pnode)> func)
return found != nullptr && func(found);
}
-bool CConnman::ForEachNode(std::function<bool(CNode* pnode)> func)
+bool CConnman::ForEachNodeContinueIf(std::function<bool(CNode* pnode)> func)
{
LOCK(cs_vNodes);
for (auto&& node : vNodes)
@@ -2706,7 +2706,7 @@ bool CConnman::ForEachNode(std::function<bool(CNode* pnode)> func)
return true;
}
-bool CConnman::ForEachNode(std::function<bool(const CNode* pnode)> func) const
+bool CConnman::ForEachNodeContinueIf(std::function<bool(const CNode* pnode)> func) const
{
LOCK(cs_vNodes);
for (const auto& node : vNodes)
@@ -2715,7 +2715,7 @@ bool CConnman::ForEachNode(std::function<bool(const CNode* pnode)> func) const
return true;
}
-bool CConnman::ForEachNodeThen(std::function<bool(CNode* pnode)> pre, std::function<void()> post)
+bool CConnman::ForEachNodeContinueIfThen(std::function<bool(CNode* pnode)> pre, std::function<void()> post)
{
bool ret = true;
LOCK(cs_vNodes);
@@ -2728,7 +2728,7 @@ bool CConnman::ForEachNodeThen(std::function<bool(CNode* pnode)> pre, std::funct
return ret;
}
-bool CConnman::ForEachNodeThen(std::function<bool(const CNode* pnode)> pre, std::function<void()> post) const
+bool CConnman::ForEachNodeContinueIfThen(std::function<bool(const CNode* pnode)> pre, std::function<void()> post) const
{
bool ret = true;
LOCK(cs_vNodes);
@@ -2741,6 +2741,35 @@ bool CConnman::ForEachNodeThen(std::function<bool(const CNode* pnode)> pre, std:
return ret;
}
+void CConnman::ForEachNode(std::function<void(CNode* pnode)> func)
+{
+ LOCK(cs_vNodes);
+ for (auto&& node : vNodes)
+ func(node);
+}
+
+void CConnman::ForEachNode(std::function<void(const CNode* pnode)> func) const
+{
+ LOCK(cs_vNodes);
+ for (const auto& node : vNodes)
+ func(node);
+}
+
+void CConnman::ForEachNodeThen(std::function<void(CNode* pnode)> pre, std::function<void()> post)
+{
+ LOCK(cs_vNodes);
+ for (auto&& node : vNodes)
+ pre(node);
+ post();
+}
+
+void CConnman::ForEachNodeThen(std::function<void(const CNode* pnode)> pre, std::function<void()> post) const
+{
+ LOCK(cs_vNodes);
+ for (const auto& node : vNodes)
+ pre(node);
+ post();
+}
int64_t PoissonNextSend(int64_t nNow, int average_interval_seconds) {
return nNow + (int64_t)(log1p(GetRand(1ULL << 48) * -0.0000000000000035527136788 /* -1/2^48 */) * average_interval_seconds * -1000000.0 + 0.5);
}
diff --git a/src/net.h b/src/net.h
index 018126d677..6ee0430f22 100644
--- a/src/net.h
+++ b/src/net.h
@@ -129,10 +129,14 @@ public:
bool CheckIncomingNonce(uint64_t nonce);
bool ForNode(NodeId id, std::function<bool(CNode* pnode)> func);
- bool ForEachNode(std::function<bool(CNode* pnode)> func);
- bool ForEachNode(std::function<bool(const CNode* pnode)> func) const;
- bool ForEachNodeThen(std::function<bool(CNode* pnode)> pre, std::function<void()> post);
- bool ForEachNodeThen(std::function<bool(const CNode* pnode)> pre, std::function<void()> post) const;
+ bool ForEachNodeContinueIf(std::function<bool(CNode* pnode)> func);
+ bool ForEachNodeContinueIf(std::function<bool(const CNode* pnode)> func) const;
+ bool ForEachNodeContinueIfThen(std::function<bool(CNode* pnode)> pre, std::function<void()> post);
+ bool ForEachNodeContinueIfThen(std::function<bool(const CNode* pnode)> pre, std::function<void()> post) const;
+ void ForEachNode(std::function<void(CNode* pnode)> func);
+ void ForEachNode(std::function<void(const CNode* pnode)> func) const;
+ void ForEachNodeThen(std::function<void(CNode* pnode)> pre, std::function<void()> post);
+ void ForEachNodeThen(std::function<void(const CNode* pnode)> pre, std::function<void()> post) const;
void RelayTransaction(const CTransaction& tx);
diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp
index ffd377b489..2b5782367c 100644
--- a/src/rpc/misc.cpp
+++ b/src/rpc/misc.cpp
@@ -481,7 +481,6 @@ UniValue setmocktime(const UniValue& params, bool fHelp)
if(g_connman) {
g_connman->ForEachNode([t](CNode* pnode) {
pnode->nLastSend = pnode->nLastRecv = t;
- return true;
});
}
diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp
index 61b6b62c9a..b011029f51 100644
--- a/src/rpc/net.cpp
+++ b/src/rpc/net.cpp
@@ -61,7 +61,6 @@ UniValue ping(const UniValue& params, bool fHelp)
// Request that each node send a ping during next message processing pass
g_connman->ForEachNode([](CNode* pnode) {
pnode->fPingQueued = true;
- return true;
});
return NullUniValue;
}
diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp
index 3daf1681f3..d2ad0a52b7 100644
--- a/src/rpc/rawtransaction.cpp
+++ b/src/rpc/rawtransaction.cpp
@@ -898,7 +898,6 @@ UniValue sendrawtransaction(const UniValue& params, bool fHelp)
g_connman->ForEachNode([&inv](CNode* pnode)
{
pnode->PushInventory(inv);
- return true;
});
return hashTx.GetHex();
}
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index fd8b056bfc..60ac2ea166 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -1465,7 +1465,6 @@ bool CWalletTx::RelayWalletTransaction(CConnman* connman)
connman->ForEachNode([&inv](CNode* pnode)
{
pnode->PushInventory(inv);
- return true;
});
return true;
}