mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-09-29 03:02:48 +02:00
mining, refactor: add m_mempool.cs thread safety lock assertions
in src/node/miner to: - BlockAssembler::addPackageTxs() - BlockAssembler::SkipMapTxEntry() - BlockAssembler::UpdatePackagesForAdded() These functions have thread safety lock annotations in their declarations but are missing the corresponding run-time lock assertions in their definitions. Per doc/developer-notes.md: "Combine annotations in function declarations with run-time asserts in function definitions."
This commit is contained in:
@@ -251,6 +251,8 @@ void BlockAssembler::AddToBlock(CTxMemPool::txiter iter)
|
|||||||
int BlockAssembler::UpdatePackagesForAdded(const CTxMemPool::setEntries& alreadyAdded,
|
int BlockAssembler::UpdatePackagesForAdded(const CTxMemPool::setEntries& alreadyAdded,
|
||||||
indexed_modified_transaction_set &mapModifiedTx)
|
indexed_modified_transaction_set &mapModifiedTx)
|
||||||
{
|
{
|
||||||
|
AssertLockHeld(m_mempool.cs);
|
||||||
|
|
||||||
int nDescendantsUpdated = 0;
|
int nDescendantsUpdated = 0;
|
||||||
for (CTxMemPool::txiter it : alreadyAdded) {
|
for (CTxMemPool::txiter it : alreadyAdded) {
|
||||||
CTxMemPool::setEntries descendants;
|
CTxMemPool::setEntries descendants;
|
||||||
@@ -287,6 +289,8 @@ int BlockAssembler::UpdatePackagesForAdded(const CTxMemPool::setEntries& already
|
|||||||
// cached size/sigops/fee values that are not actually correct.
|
// cached size/sigops/fee values that are not actually correct.
|
||||||
bool BlockAssembler::SkipMapTxEntry(CTxMemPool::txiter it, indexed_modified_transaction_set& mapModifiedTx, CTxMemPool::setEntries& failedTx)
|
bool BlockAssembler::SkipMapTxEntry(CTxMemPool::txiter it, indexed_modified_transaction_set& mapModifiedTx, CTxMemPool::setEntries& failedTx)
|
||||||
{
|
{
|
||||||
|
AssertLockHeld(m_mempool.cs);
|
||||||
|
|
||||||
assert(it != m_mempool.mapTx.end());
|
assert(it != m_mempool.mapTx.end());
|
||||||
return mapModifiedTx.count(it) || inBlock.count(it) || failedTx.count(it);
|
return mapModifiedTx.count(it) || inBlock.count(it) || failedTx.count(it);
|
||||||
}
|
}
|
||||||
@@ -314,6 +318,8 @@ void BlockAssembler::SortForBlock(const CTxMemPool::setEntries& package, std::ve
|
|||||||
// transaction package to work on next.
|
// transaction package to work on next.
|
||||||
void BlockAssembler::addPackageTxs(int& nPackagesSelected, int& nDescendantsUpdated)
|
void BlockAssembler::addPackageTxs(int& nPackagesSelected, int& nDescendantsUpdated)
|
||||||
{
|
{
|
||||||
|
AssertLockHeld(m_mempool.cs);
|
||||||
|
|
||||||
// mapModifiedTx will store sorted packages after they are modified
|
// mapModifiedTx will store sorted packages after they are modified
|
||||||
// because some of their txs are already in the block
|
// because some of their txs are already in the block
|
||||||
indexed_modified_transaction_set mapModifiedTx;
|
indexed_modified_transaction_set mapModifiedTx;
|
||||||
|
Reference in New Issue
Block a user