diff options
author | TheCharlatan <seb.kung@gmail.com> | 2024-01-18 20:23:48 +0100 |
---|---|---|
committer | TheCharlatan <seb.kung@gmail.com> | 2024-02-15 14:37:01 +0100 |
commit | 84f5c135b8118cbe15b8bfb4db80d61237987f64 (patch) | |
tree | 582c81822878c575620436e51f53739eb558ae3e /src/bitcoin-chainstate.cpp | |
parent | 473dd4b97ae40e43e1a1a97fdbeb40be4855e9bc (diff) |
refactor: De-globalize g_signals
Diffstat (limited to 'src/bitcoin-chainstate.cpp')
-rw-r--r-- | src/bitcoin-chainstate.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/bitcoin-chainstate.cpp b/src/bitcoin-chainstate.cpp index 577f398c1a..0514021a8e 100644 --- a/src/bitcoin-chainstate.cpp +++ b/src/bitcoin-chainstate.cpp @@ -74,10 +74,12 @@ int main(int argc, char* argv[]) // Start the lightweight task scheduler thread scheduler.m_service_thread = std::thread(util::TraceThread, "scheduler", [&] { scheduler.serviceQueue(); }); + CMainSignals validation_signals{}; + // Gather some entropy once per minute. scheduler.scheduleEvery(RandAddPeriodic, std::chrono::minutes{1}); - GetMainSignals().RegisterBackgroundSignalScheduler(scheduler); + validation_signals.RegisterBackgroundSignalScheduler(scheduler); class KernelNotifications : public kernel::Notifications { @@ -118,7 +120,7 @@ int main(int argc, char* argv[]) .chainparams = *chainparams, .datadir = abs_datadir, .notifications = *notifications, - .signals = &GetMainSignals(), + .signals = &validation_signals, }; const node::BlockManager::Options blockman_opts{ .chainparams = chainman_opts.chainparams, @@ -236,9 +238,9 @@ int main(int argc, char* argv[]) bool new_block; auto sc = std::make_shared<submitblock_StateCatcher>(block.GetHash()); - RegisterSharedValidationInterface(sc); + validation_signals.RegisterSharedValidationInterface(sc); bool accepted = chainman.ProcessNewBlock(blockptr, /*force_processing=*/true, /*min_pow_checked=*/true, /*new_block=*/&new_block); - UnregisterSharedValidationInterface(sc); + validation_signals.UnregisterSharedValidationInterface(sc); if (!new_block && accepted) { std::cerr << "duplicate" << std::endl; break; @@ -291,7 +293,7 @@ epilogue: scheduler.stop(); if (chainman.m_thread_load.joinable()) chainman.m_thread_load.join(); - GetMainSignals().FlushBackgroundCallbacks(); + validation_signals.FlushBackgroundCallbacks(); { LOCK(cs_main); for (Chainstate* chainstate : chainman.GetAll()) { @@ -301,5 +303,5 @@ epilogue: } } } - GetMainSignals().UnregisterBackgroundSignalScheduler(); + validation_signals.UnregisterBackgroundSignalScheduler(); } |