mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-05-04 08:51:00 +02:00
init: use std::thread for ThreadImport()
Mentioned in #19142, which removed the boost::interruption_point() in ThreadImport().
This commit is contained in:
parent
b33136b6ba
commit
83fd3a6d73
@ -152,6 +152,8 @@ NODISCARD static bool CreatePidFile()
|
|||||||
|
|
||||||
static std::unique_ptr<ECCVerifyHandle> globalVerifyHandle;
|
static std::unique_ptr<ECCVerifyHandle> globalVerifyHandle;
|
||||||
|
|
||||||
|
static std::thread g_load_block;
|
||||||
|
|
||||||
static boost::thread_group threadGroup;
|
static boost::thread_group threadGroup;
|
||||||
|
|
||||||
void Interrupt(NodeContext& node)
|
void Interrupt(NodeContext& node)
|
||||||
@ -214,8 +216,9 @@ void Shutdown(NodeContext& node)
|
|||||||
StopTorControl();
|
StopTorControl();
|
||||||
|
|
||||||
// After everything has been shut down, but before things get flushed, stop the
|
// 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 (node.scheduler) node.scheduler->stop();
|
||||||
|
if (g_load_block.joinable()) g_load_block.join();
|
||||||
threadGroup.interrupt_all();
|
threadGroup.interrupt_all();
|
||||||
threadGroup.join_all();
|
threadGroup.join_all();
|
||||||
|
|
||||||
@ -680,7 +683,6 @@ static void CleanupBlockRevFiles()
|
|||||||
static void ThreadImport(ChainstateManager& chainman, std::vector<fs::path> vImportFiles)
|
static void ThreadImport(ChainstateManager& chainman, std::vector<fs::path> vImportFiles)
|
||||||
{
|
{
|
||||||
const CChainParams& chainparams = Params();
|
const CChainParams& chainparams = Params();
|
||||||
util::ThreadRename("loadblk");
|
|
||||||
ScheduleBatchPriority();
|
ScheduleBatchPriority();
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -1842,7 +1844,7 @@ bool AppInitMain(const util::Ref& context, NodeContext& node)
|
|||||||
vImportFiles.push_back(strFile);
|
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
|
// Wait for genesis block to be processed
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user