Changeset View
Changeset View
Standalone View
Standalone View
src/validationinterface.cpp
Show All 35 Lines | boost::signals2::signal<void(const CBlockIndex *, | ||||
const std::shared_ptr<const CBlock> &)> | const std::shared_ptr<const CBlock> &)> | ||||
NewPoWValidBlock; | NewPoWValidBlock; | ||||
// We are not allowed to assume the scheduler only runs in one thread, | // We are not allowed to assume the scheduler only runs in one thread, | ||||
// but must ensure all callbacks happen in-order, so we end up creating | // but must ensure all callbacks happen in-order, so we end up creating | ||||
// our own queue here :( | // our own queue here :( | ||||
SingleThreadedSchedulerClient m_schedulerClient; | SingleThreadedSchedulerClient m_schedulerClient; | ||||
MainSignalsInstance(CScheduler *pscheduler) | explicit MainSignalsInstance(CScheduler *pscheduler) | ||||
: m_schedulerClient(pscheduler) {} | : m_schedulerClient(pscheduler) {} | ||||
}; | }; | ||||
static CMainSignals g_signals; | static CMainSignals g_signals; | ||||
void CMainSignals::RegisterBackgroundSignalScheduler(CScheduler &scheduler) { | void CMainSignals::RegisterBackgroundSignalScheduler(CScheduler &scheduler) { | ||||
assert(!m_internals); | assert(!m_internals); | ||||
m_internals.reset(new MainSignalsInstance(&scheduler)); | m_internals.reset(new MainSignalsInstance(&scheduler)); | ||||
▲ Show 20 Lines • Show All 110 Lines • Show Last 20 Lines |