/
githubmirror
/
bitcoin
Обзор
Документация
Войти
/
githubmirror
/
bitcoin
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/qt/initexecutor.cpp
71 строка
2 KB
MarcoFalke
scripted-diff: [doc] Unify stale copyright headers
17 дек 2025, 00:21
17 дек 2025, 00:21
fa5f297
Код
Авторство
О чём код?
// Copyright (c) 2014-present The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include <qt/initexecutor.h> #include <interfaces/node.h> #include <util/exception.h> #include <util/threadnames.h> #include <exception> #include <QDebug> #include <QMetaObject> #include <QObject> #include <QString> #include <QThread> InitExecutor::InitExecutor(interfaces::Node& node) : QObject(), m_node(node) { m_context.moveToThread(&m_thread); m_thread.start(); } InitExecutor::~InitExecutor() { qDebug() << __func__ << ": Stopping thread"; m_thread.quit(); m_thread.wait(); qDebug() << __func__ << ": Stopped thread"; } void InitExecutor::handleRunawayException(const std::exception* e) { PrintExceptionContinue(e, "Runaway exception"); Q_EMIT runawayException(QString::fromStdString(m_node.getWarnings().translated)); } void InitExecutor::initialize() { QMetaObject::invokeMethod(&m_context, [this] { try { util::ThreadRename("qt-init"); qDebug() << "Running initialization in thread"; interfaces::BlockAndHeaderTipInfo tip_info; bool rv = m_node.appInitMain(&tip_info); Q_EMIT initializeResult(rv, tip_info); } catch (const std::exception& e) { handleRunawayException(&e); } catch (...) { handleRunawayException(nullptr); } }); } void InitExecutor::shutdown() { QMetaObject::invokeMethod(&m_context, [this] { try { qDebug() << "Running Shutdown in thread"; m_node.appShutdown(); qDebug() << "Shutdown finished"; Q_EMIT shutdownResult(); } catch (const std::exception& e) { handleRunawayException(&e); } catch (...) { handleRunawayException(nullptr); } }); }