Give CMainSignals a reference to the global scheduler

...so that it can run some signals in the background later
This commit is contained in:
Matt Corallo
2017-01-19 16:49:22 -05:00
parent 3a19fed9db
commit cda1429d5b
5 changed files with 32 additions and 0 deletions

View File

@@ -4,6 +4,8 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "validationinterface.h"
#include "init.h"
#include "scheduler.h"
#include <boost/signals2/signal.hpp>
@@ -17,6 +19,8 @@ struct MainSignalsInstance {
boost::signals2::signal<void (int64_t nBestBlockTime, CConnman* connman)> Broadcast;
boost::signals2::signal<void (const CBlock&, const CValidationState&)> BlockChecked;
boost::signals2::signal<void (const CBlockIndex *, const std::shared_ptr<const CBlock>&)> NewPoWValidBlock;
CScheduler *m_scheduler = NULL;
};
static CMainSignals g_signals;
@@ -25,6 +29,15 @@ CMainSignals::CMainSignals() {
m_internals.reset(new MainSignalsInstance());
}
void CMainSignals::RegisterBackgroundSignalScheduler(CScheduler& scheduler) {
assert(!m_internals->m_scheduler);
m_internals->m_scheduler = &scheduler;
}
void CMainSignals::UnregisterBackgroundSignalScheduler() {
m_internals->m_scheduler = NULL;
}
CMainSignals& GetMainSignals()
{
return g_signals;