mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 10:43:19 -03:00
Replace LockAssertion with a proper thread safety annotations
This commit is contained in:
parent
73f71e1996
commit
ab2a44297f
1 changed files with 10 additions and 11 deletions
|
@ -662,8 +662,8 @@ static void MaybeSetPeerAsAnnouncingHeaderAndIDs(NodeId nodeid, CConnman& connma
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
connman.ForNode(nodeid, [&connman](CNode* pfrom){
|
connman.ForNode(nodeid, [&connman](CNode* pfrom) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
|
||||||
LockAssertion lock(::cs_main);
|
AssertLockHeld(::cs_main);
|
||||||
uint64_t nCMPCTBLOCKVersion = (pfrom->GetLocalServices() & NODE_WITNESS) ? 2 : 1;
|
uint64_t nCMPCTBLOCKVersion = (pfrom->GetLocalServices() & NODE_WITNESS) ? 2 : 1;
|
||||||
if (lNodesAnnouncingHeaderAndIDs.size() >= 3) {
|
if (lNodesAnnouncingHeaderAndIDs.size() >= 3) {
|
||||||
// As per BIP152, we only get 3 of our peers to announce
|
// As per BIP152, we only get 3 of our peers to announce
|
||||||
|
@ -1355,8 +1355,8 @@ void PeerManager::NewPoWValidBlock(const CBlockIndex *pindex, const std::shared_
|
||||||
fWitnessesPresentInMostRecentCompactBlock = fWitnessEnabled;
|
fWitnessesPresentInMostRecentCompactBlock = fWitnessEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_connman.ForEachNode([this, &pcmpctblock, pindex, &msgMaker, fWitnessEnabled, &hashBlock](CNode* pnode) {
|
m_connman.ForEachNode([this, &pcmpctblock, pindex, &msgMaker, fWitnessEnabled, &hashBlock](CNode* pnode) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
|
||||||
LockAssertion lock(::cs_main);
|
AssertLockHeld(::cs_main);
|
||||||
|
|
||||||
// TODO: Avoid the repeated-serialization here
|
// TODO: Avoid the repeated-serialization here
|
||||||
if (pnode->nVersion < INVALID_CB_NO_BAN_VERSION || pnode->fDisconnect)
|
if (pnode->nVersion < INVALID_CB_NO_BAN_VERSION || pnode->fDisconnect)
|
||||||
|
@ -1489,9 +1489,8 @@ bool static AlreadyHaveBlock(const uint256& block_hash) EXCLUSIVE_LOCKS_REQUIRED
|
||||||
|
|
||||||
void RelayTransaction(const uint256& txid, const uint256& wtxid, const CConnman& connman)
|
void RelayTransaction(const uint256& txid, const uint256& wtxid, const CConnman& connman)
|
||||||
{
|
{
|
||||||
connman.ForEachNode([&txid, &wtxid](CNode* pnode)
|
connman.ForEachNode([&txid, &wtxid](CNode* pnode) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
|
||||||
{
|
AssertLockHeld(::cs_main);
|
||||||
LockAssertion lock(::cs_main);
|
|
||||||
|
|
||||||
CNodeState* state = State(pnode->GetId());
|
CNodeState* state = State(pnode->GetId());
|
||||||
if (state == nullptr) return;
|
if (state == nullptr) return;
|
||||||
|
@ -3979,8 +3978,8 @@ void PeerManager::EvictExtraOutboundPeers(int64_t time_in_seconds)
|
||||||
NodeId worst_peer = -1;
|
NodeId worst_peer = -1;
|
||||||
int64_t oldest_block_announcement = std::numeric_limits<int64_t>::max();
|
int64_t oldest_block_announcement = std::numeric_limits<int64_t>::max();
|
||||||
|
|
||||||
m_connman.ForEachNode([&](CNode* pnode) {
|
m_connman.ForEachNode([&](CNode* pnode) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
|
||||||
LockAssertion lock(::cs_main);
|
AssertLockHeld(::cs_main);
|
||||||
|
|
||||||
// Ignore non-outbound peers, or nodes marked for disconnect already
|
// Ignore non-outbound peers, or nodes marked for disconnect already
|
||||||
if (!pnode->IsOutboundOrBlockRelayConn() || pnode->fDisconnect) return;
|
if (!pnode->IsOutboundOrBlockRelayConn() || pnode->fDisconnect) return;
|
||||||
|
@ -3996,8 +3995,8 @@ void PeerManager::EvictExtraOutboundPeers(int64_t time_in_seconds)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (worst_peer != -1) {
|
if (worst_peer != -1) {
|
||||||
bool disconnected = m_connman.ForNode(worst_peer, [&](CNode *pnode) {
|
bool disconnected = m_connman.ForNode(worst_peer, [&](CNode* pnode) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
|
||||||
LockAssertion lock(::cs_main);
|
AssertLockHeld(::cs_main);
|
||||||
|
|
||||||
// Only disconnect a peer that has been connected to us for
|
// Only disconnect a peer that has been connected to us for
|
||||||
// some reasonable fraction of our check-frequency, to give
|
// some reasonable fraction of our check-frequency, to give
|
||||||
|
|
Loading…
Add table
Reference in a new issue