/root/bitcoin/src/node/abort.cpp
| Line | Count | Source | 
| 1 |  | // Copyright (c) 2023 The Bitcoin Core developers | 
| 2 |  | // Distributed under the MIT software license, see the accompanying | 
| 3 |  | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | 
| 4 |  |  | 
| 5 |  | #include <node/abort.h> | 
| 6 |  |  | 
| 7 |  | #include <logging.h> | 
| 8 |  | #include <node/interface_ui.h> | 
| 9 |  | #include <node/warnings.h> | 
| 10 |  | #include <util/signalinterrupt.h> | 
| 11 |  | #include <util/translation.h> | 
| 12 |  |  | 
| 13 |  | #include <atomic> | 
| 14 |  | #include <cstdlib> | 
| 15 |  |  | 
| 16 |  | namespace node { | 
| 17 |  |  | 
| 18 |  | void AbortNode(const std::function<bool()>& shutdown_request, std::atomic<int>& exit_status, const bilingual_str& message, node::Warnings* warnings) | 
| 19 | 0 | { | 
| 20 | 0 |     if (warnings) warnings->Set(Warning::FATAL_INTERNAL_ERROR, message); | 
| 21 | 0 |     InitError(_("A fatal internal error occurred, see debug.log for details: ") + message); | 
| 22 | 0 |     exit_status.store(EXIT_FAILURE); | 
| 23 | 0 |     if (shutdown_request && !shutdown_request()) { | 
| 24 | 0 |         LogError("Failed to send shutdown signal\n"); | 
| 25 | 0 |     }; | 
| 26 | 0 | } | 
| 27 |  | } // namespace node |