@@ -377,7 +377,6 @@ void Shutdown(NodeContext& node)
377377 node.chain_clients .clear ();
378378 if (node.validation_signals ) {
379379 node.validation_signals ->UnregisterAllValidationInterfaces ();
380- node.validation_signals ->UnregisterBackgroundSignalScheduler ();
381380 }
382381 node.mempool .reset ();
383382 node.fee_estimator .reset ();
@@ -1143,17 +1142,18 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
11431142
11441143 assert (!node.scheduler );
11451144 node.scheduler = std::make_unique<CScheduler>();
1145+ auto & scheduler = *node.scheduler ;
11461146
11471147 // Start the lightweight task scheduler thread
1148- node. scheduler -> m_service_thread = std::thread (util::TraceThread, " scheduler" , [&] { node. scheduler -> serviceQueue (); });
1148+ scheduler. m_service_thread = std::thread (util::TraceThread, " scheduler" , [&] { scheduler. serviceQueue (); });
11491149
11501150 // Gather some entropy once per minute.
1151- node. scheduler -> scheduleEvery ([]{
1151+ scheduler. scheduleEvery ([]{
11521152 RandAddPeriodic ();
11531153 }, std::chrono::minutes{1 });
11541154
11551155 // Check disk space every 5 minutes to avoid db corruption.
1156- node. scheduler -> scheduleEvery ([&args, &node]{
1156+ scheduler. scheduleEvery ([&args, &node]{
11571157 constexpr uint64_t min_disk_space = 50 << 20 ; // 50 MB
11581158 if (!CheckDiskSpace (args.GetBlocksDirPath (), min_disk_space)) {
11591159 LogPrintf (" Shutting down due to lack of disk space!\n " );
@@ -1164,9 +1164,8 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
11641164 }, std::chrono::minutes{5 });
11651165
11661166 assert (!node.validation_signals );
1167- node.validation_signals = std::make_unique<CMainSignals>();
1167+ node.validation_signals = std::make_unique<CMainSignals>(scheduler );
11681168 auto & validation_signals = *node.validation_signals ;
1169- validation_signals.RegisterBackgroundSignalScheduler (*node.scheduler );
11701169
11711170 // Create client interfaces for wallets that are supposed to be loaded
11721171 // according to -wallet and -disablewallet options. This only constructs
@@ -1271,7 +1270,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
12711270
12721271 // Flush estimates to disk periodically
12731272 CBlockPolicyEstimator* fee_estimator = node.fee_estimator .get ();
1274- node. scheduler -> scheduleEvery ([fee_estimator] { fee_estimator->FlushFeeEstimates (); }, FEE_FLUSH_INTERVAL);
1273+ scheduler. scheduleEvery ([fee_estimator] { fee_estimator->FlushFeeEstimates (); }, FEE_FLUSH_INTERVAL);
12751274 validation_signals.RegisterValidationInterface (fee_estimator);
12761275 }
12771276
@@ -1910,7 +1909,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
19101909
19111910 connOptions.m_i2p_accept_incoming = args.GetBoolArg (" -i2pacceptincoming" , DEFAULT_I2P_ACCEPT_INCOMING);
19121911
1913- if (!node.connman ->Start (*node. scheduler , connOptions)) {
1912+ if (!node.connman ->Start (scheduler, connOptions)) {
19141913 return false ;
19151914 }
19161915
@@ -1930,15 +1929,15 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
19301929 uiInterface.InitMessage (_ (" Done loading" ).translated );
19311930
19321931 for (const auto & client : node.chain_clients ) {
1933- client->start (*node. scheduler );
1932+ client->start (scheduler);
19341933 }
19351934
19361935 BanMan* banman = node.banman .get ();
1937- node. scheduler -> scheduleEvery ([banman]{
1936+ scheduler. scheduleEvery ([banman]{
19381937 banman->DumpBanlist ();
19391938 }, DUMP_BANS_INTERVAL);
19401939
1941- if (node.peerman ) node.peerman ->StartScheduledTasks (*node. scheduler );
1940+ if (node.peerman ) node.peerman ->StartScheduledTasks (scheduler);
19421941
19431942#if HAVE_SYSTEM
19441943 StartupNotify (args);
0 commit comments