Skip to content

Commit 192dac1

Browse files
TheCharlatanajtownsstickies-v
committed
[refactor] Cleanup BlockAssembler mempool usage
The `addPackageTxs` method of the `BlockAssembler` currently has access to two mempool variables, as an argument and as a member. Clean this up and clarify that they both are the same mempool instance by removing the argument and instead only using the member variable in the method. Co-Authored-By: Anthony Towns <[email protected]> Co-authored-by: stickies-v <[email protected]>
1 parent d4cc0c6 commit 192dac1

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/node/miner.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@ std::unique_ptr<CBlockTemplate> BlockAssembler::CreateNewBlock(const CScript& sc
142142
int nPackagesSelected = 0;
143143
int nDescendantsUpdated = 0;
144144
if (m_mempool) {
145-
LOCK(m_mempool->cs);
146-
addPackageTxs(*m_mempool, nPackagesSelected, nDescendantsUpdated);
145+
addPackageTxs(nPackagesSelected, nDescendantsUpdated);
147146
}
148147

149148
const auto time_1{SteadyClock::now()};
@@ -292,9 +291,10 @@ void BlockAssembler::SortForBlock(const CTxMemPool::setEntries& package, std::ve
292291
// Each time through the loop, we compare the best transaction in
293292
// mapModifiedTxs with the next transaction in the mempool to decide what
294293
// transaction package to work on next.
295-
void BlockAssembler::addPackageTxs(const CTxMemPool& mempool, int& nPackagesSelected, int& nDescendantsUpdated)
294+
void BlockAssembler::addPackageTxs(int& nPackagesSelected, int& nDescendantsUpdated)
296295
{
297-
AssertLockHeld(mempool.cs);
296+
const auto& mempool{*Assert(m_mempool)};
297+
LOCK(mempool.cs);
298298

299299
// mapModifiedTx will store sorted packages after they are modified
300300
// because some of their txs are already in the block

src/node/miner.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,11 @@ class BlockAssembler
187187
// Methods for how to add transactions to a block.
188188
/** Add transactions based on feerate including unconfirmed ancestors
189189
* Increments nPackagesSelected / nDescendantsUpdated with corresponding
190-
* statistics from the package selection (for logging statistics). */
191-
void addPackageTxs(const CTxMemPool& mempool, int& nPackagesSelected, int& nDescendantsUpdated) EXCLUSIVE_LOCKS_REQUIRED(mempool.cs);
190+
* statistics from the package selection (for logging statistics).
191+
*
192+
* @pre BlockAssembler::m_mempool must not be nullptr
193+
*/
194+
void addPackageTxs(int& nPackagesSelected, int& nDescendantsUpdated) EXCLUSIVE_LOCKS_REQUIRED(!m_mempool->cs);
192195

193196
// helper functions for addPackageTxs()
194197
/** Remove confirmed (inBlock) entries from given set */

0 commit comments

Comments
 (0)