diff --git a/doc/developer-notes.md b/doc/developer-notes.md index fca72914a3a..8e96f3ceb18 100644 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -621,7 +621,7 @@ Threads : Started from `main()` in `bitcoind.cpp`. Responsible for starting up and shutting down the application. -- [ThreadImport (`b-loadblk`)](https://doxygen.bitcoincore.org/namespacenode.html#ab4305679079866f0f420f7dbf278381d) +- [ThreadImport (`b-initload`)](https://doxygen.bitcoincore.org/namespacenode.html#ab4305679079866f0f420f7dbf278381d) : Loads blocks from `blk*.dat` files or `-loadblock=` on startup. - [CCheckQueue::Loop (`b-scriptch.x`)](https://doxygen.bitcoincore.org/class_c_check_queue.html#a6e7fa51d3a25e7cb65446d4b50e6a987) diff --git a/src/bitcoin-chainstate.cpp b/src/bitcoin-chainstate.cpp index c36233207e8..45fd239e20f 100644 --- a/src/bitcoin-chainstate.cpp +++ b/src/bitcoin-chainstate.cpp @@ -287,7 +287,7 @@ epilogue: // Without this precise shutdown sequence, there will be a lot of nullptr // dereferencing and UB. scheduler.stop(); - if (chainman.m_load_block.joinable()) chainman.m_load_block.join(); + if (chainman.m_thread_load.joinable()) chainman.m_thread_load.join(); StopScriptCheckWorkerThreads(); GetMainSignals().FlushBackgroundCallbacks(); diff --git a/src/init.cpp b/src/init.cpp index 545f6068d9f..80205df000f 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -131,7 +131,7 @@ using node::LoadChainstate; using node::MempoolPath; using node::NodeContext; using node::ShouldPersistMempool; -using node::ThreadImport; +using node::ImportBlocks; using node::VerifyLoadedChainstate; static constexpr bool DEFAULT_PROXYRANDOMIZE{true}; @@ -268,7 +268,7 @@ void Shutdown(NodeContext& node) // After everything has been shut down, but before things get flushed, stop the // CScheduler/checkqueue, scheduler and load block thread. if (node.scheduler) node.scheduler->stop(); - if (node.chainman && node.chainman->m_load_block.joinable()) node.chainman->m_load_block.join(); + if (node.chainman && node.chainman->m_thread_load.joinable()) node.chainman->m_thread_load.join(); StopScriptCheckWorkerThreads(); // After the threads that potentially access these pointers have been stopped, @@ -1545,7 +1545,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info) // ********************************************************* Step 8: start indexers - // If reindex-chainstate was specified, delay syncing indexes until ThreadImport has reindexed the chain + // If reindex-chainstate was specified, delay syncing indexes until ImportBlocks has reindexed the chain if (!fReindexChainState) g_indexes_ready_to_sync = true; if (args.GetBoolArg("-txindex", DEFAULT_TXINDEX)) { auto result{WITH_LOCK(cs_main, return CheckLegacyTxindex(*Assert(chainman.m_blockman.m_block_tree_db)))}; @@ -1656,9 +1656,9 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info) vImportFiles.push_back(fs::PathFromString(strFile)); } - chainman.m_load_block = std::thread(&util::TraceThread, "loadblk", [=, &chainman, &args] { + chainman.m_thread_load = std::thread(&util::TraceThread, "initload", [=, &chainman, &args] { // Import blocks - ThreadImport(chainman, vImportFiles); + ImportBlocks(chainman, vImportFiles); // Load mempool from disk chainman.ActiveChainstate().LoadMempool(ShouldPersistMempool(args) ? MempoolPath(args) : fs::path{}); }); @@ -1667,7 +1667,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info) { WAIT_LOCK(g_genesis_wait_mutex, lock); // We previously could hang here if StartShutdown() is called prior to - // ThreadImport getting started, so instead we just wait on a timer to + // ImportBlocks getting started, so instead we just wait on a timer to // check ShutdownRequested() regularly. while (!fHaveGenesis && !ShutdownRequested()) { g_genesis_wait_cv.wait_for(lock, std::chrono::milliseconds(500)); diff --git a/src/node/blockstorage.cpp b/src/node/blockstorage.cpp index 461ec10f66c..0e9ae0ae270 100644 --- a/src/node/blockstorage.cpp +++ b/src/node/blockstorage.cpp @@ -868,7 +868,7 @@ public: } }; -void ThreadImport(ChainstateManager& chainman, std::vector vImportFiles) +void ImportBlocks(ChainstateManager& chainman, std::vector vImportFiles) { ScheduleBatchPriority(); diff --git a/src/node/blockstorage.h b/src/node/blockstorage.h index 4895e582e90..2c219e7a598 100644 --- a/src/node/blockstorage.h +++ b/src/node/blockstorage.h @@ -255,7 +255,7 @@ public: void CleanupBlockRevFiles() const; }; -void ThreadImport(ChainstateManager& chainman, std::vector vImportFiles); +void ImportBlocks(ChainstateManager& chainman, std::vector vImportFiles); } // namespace node #endif // BITCOIN_NODE_BLOCKSTORAGE_H diff --git a/src/node/chainstate.cpp b/src/node/chainstate.cpp index 3900d2e6200..255d8be0ecb 100644 --- a/src/node/chainstate.cpp +++ b/src/node/chainstate.cpp @@ -82,7 +82,7 @@ static ChainstateLoadResult CompleteChainstateInitialization( // At this point blocktree args are consistent with what's on disk. // If we're not mid-reindex (based on disk + args), add a genesis block on disk // (otherwise we use the one already on disk). - // This is called again in ThreadImport after the reindex completes. + // This is called again in ImportBlocks after the reindex completes. if (!fReindex && !chainman.ActiveChainstate().LoadGenesisBlock()) { return {ChainstateLoadStatus::FAILURE, _("Error initializing block database")}; } diff --git a/src/validation.h b/src/validation.h index 66bc036e668..49860f2d6af 100644 --- a/src/validation.h +++ b/src/validation.h @@ -987,7 +987,7 @@ public: const util::SignalInterrupt& m_interrupt; const Options m_options; - std::thread m_load_block; + std::thread m_thread_load; //! A single BlockManager instance is shared across each constructed //! chainstate to avoid duplicating block metadata. node::BlockManager m_blockman; diff --git a/test/functional/feature_init.py b/test/functional/feature_init.py index 7af67730bdf..64ca312b842 100755 --- a/test/functional/feature_init.py +++ b/test/functional/feature_init.py @@ -71,7 +71,7 @@ class InitStressTest(BitcoinTestFramework): b'init message: Starting network threads', b'net thread start', b'addcon thread start', - b'loadblk thread start', + b'initload thread start', b'txindex thread start', b'block filter index thread start', b'coinstatsindex thread start', diff --git a/test/functional/test_framework/test_node.py b/test/functional/test_framework/test_node.py index 5111d88e15e..e5e3061def9 100755 --- a/test/functional/test_framework/test_node.py +++ b/test/functional/test_framework/test_node.py @@ -250,7 +250,7 @@ class TestNode(): # Wait for the node to finish reindex, block import, and # loading the mempool. Usually importing happens fast or # even "immediate" when the node is started. However, there - # is no guarantee and sometimes ThreadImport might finish + # is no guarantee and sometimes ImportBlocks might finish # later. This is going to cause intermittent test failures, # because generally the tests assume the node is fully # ready after being started.