Merge #19197: init: use std::thread for ThreadImport()
83fd3a6d73
init: use std::thread for ThreadImport() (fanquake) Pull request description: [Mentioned](https://github.com/bitcoin/bitcoin/pull/19142#issuecomment-638090759) in #19142, which removed the `boost::interruption_point()` in `ThreadImport()`. ACKs for top commit: hebasto: ACK83fd3a6d73
, I have reviewed the code and it looks OK, I agree it can be merged. donaloconnor: ACK83fd3a6
laanwj: Code review ACK83fd3a6d73
MarcoFalke: ACK83fd3a6d73
Tree-SHA512: 0644947d669feb61eed3a944012dad1bd3dd75cf994aa2630013043c213a335b162b63e20aa37e0997740d8e3a3ec367b660b5196007a09e13f0ac455b36c821
This commit is contained in:
commit
057bd3189f
1 changed files with 5 additions and 3 deletions
|
@ -152,6 +152,8 @@ NODISCARD static bool CreatePidFile()
|
|||
|
||||
static std::unique_ptr<ECCVerifyHandle> globalVerifyHandle;
|
||||
|
||||
static std::thread g_load_block;
|
||||
|
||||
static boost::thread_group threadGroup;
|
||||
|
||||
void Interrupt(NodeContext& node)
|
||||
|
@ -214,8 +216,9 @@ void Shutdown(NodeContext& node)
|
|||
StopTorControl();
|
||||
|
||||
// After everything has been shut down, but before things get flushed, stop the
|
||||
// CScheduler/checkqueue threadGroup
|
||||
// CScheduler/checkqueue, threadGroup and load block thread.
|
||||
if (node.scheduler) node.scheduler->stop();
|
||||
if (g_load_block.joinable()) g_load_block.join();
|
||||
threadGroup.interrupt_all();
|
||||
threadGroup.join_all();
|
||||
|
||||
|
@ -680,7 +683,6 @@ static void CleanupBlockRevFiles()
|
|||
static void ThreadImport(ChainstateManager& chainman, std::vector<fs::path> vImportFiles)
|
||||
{
|
||||
const CChainParams& chainparams = Params();
|
||||
util::ThreadRename("loadblk");
|
||||
ScheduleBatchPriority();
|
||||
|
||||
{
|
||||
|
@ -1842,7 +1844,7 @@ bool AppInitMain(const util::Ref& context, NodeContext& node)
|
|||
vImportFiles.push_back(strFile);
|
||||
}
|
||||
|
||||
threadGroup.create_thread([=, &chainman] { ThreadImport(chainman, vImportFiles); });
|
||||
g_load_block = std::thread(&TraceThread<std::function<void()>>, "loadblk", [=, &chainman]{ ThreadImport(chainman, vImportFiles); });
|
||||
|
||||
// Wait for genesis block to be processed
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue