aboutsummaryrefslogtreecommitdiff
path: root/src/bitcoin-chainstate.cpp
diff options
context:
space:
mode:
authorTheCharlatan <seb.kung@gmail.com>2024-01-18 20:23:48 +0100
committerTheCharlatan <seb.kung@gmail.com>2024-02-15 14:37:01 +0100
commit84f5c135b8118cbe15b8bfb4db80d61237987f64 (patch)
tree582c81822878c575620436e51f53739eb558ae3e /src/bitcoin-chainstate.cpp
parent473dd4b97ae40e43e1a1a97fdbeb40be4855e9bc (diff)
refactor: De-globalize g_signals
Diffstat (limited to 'src/bitcoin-chainstate.cpp')
-rw-r--r--src/bitcoin-chainstate.cpp14
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();
}